Olá, comecei a usar o TypeScript recentemente. É uma linguagem super útil para mim :)
A propósito, estou em um tutorial sobre String Type
aqui https://www.typescriptlang.org/docs/handbook/basic-types.html
Versão TypeScript:
1.8.10
Código
_hello.ts_
let name: string = "bob";
Sempre que eu compilar, o compilador emitirá o seguinte.
$ tsc hello.ts
../../usr/local/lib/node_modules/typescript/lib/lib.d.ts(16757,13): error TS2451: Cannot redeclare block-scoped variable 'name'.
hello.ts(1,5): error TS2451: Cannot redeclare block-scoped variable 'name'.
_hello.ts_
let aname: string = "bob";
Eu li uma parte de lib.d.ts
e tem declare var name: string;
. Posso entender que o compilador emite um erro. No entanto, que conceito não podemos usar a variável name
no TypeScript?
E eu acho que o tutorial que não funciona não é bom :(
Ou há algo errado comigo? Espero repetir uma resposta :)
Porque já existe uma variável chamada name
no _escopo global_. Experimente em seu navegador, console.log(name)
e você verá uma string vazia (ou talvez alguma outra string) em vez de undefined
.
Coloque sua variável de nome em um _module_ ou namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
Documentação para esta variável: https://developer.mozilla.org/en-US/docs/Web/API/Window/name : rose:
@basarat
Obrigado pela sua resposta. Isso tem um significado tão grande ...
Eu não sabia que já havia name
variável no escopo global :)
@DanielRosenwasser
Obrigado por corrigir o documento também :)
Comentários muito úteis
Porque já existe uma variável chamada
name
no _escopo global_. Experimente em seu navegador,console.log(name)
e você verá uma string vazia (ou talvez alguma outra string) em vez deundefined
.Consertar
Coloque sua variável de nome em um _module_ ou
namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html