Здравствуйте, я недавно начал использовать TypeScript. Для меня это супер полезный язык :)
Кстати, я нахожусь в учебнике о String Type
здесь https://www.typescriptlang.org/docs/handbook/basic-types.html
Версия TypeScript:
1.8.10
Код
_hello.ts_
let name: string = "bob";
Всякий раз, когда я компилирую, компилятор выдаст следующее.
$ 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";
Я прочитал часть lib.d.ts
и там declare var name: string;
. Итак, я могу понять, что компилятор выдает ошибку. Однако какую концепцию нельзя использовать в TypeScript с переменной name
?
И я думаю, что учебник, который не работает, плохой :(
Или со мной что-то не так? Надеюсь переиграть ответ :)
Потому что в _global scope_ уже есть переменная с именем name
. Попробуйте в своем браузере console.log(name)
и вы увидите пустую строку (или, возможно, другую строку) вместо undefined
.
Поместите переменную своего имени в _module_ или namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
Документация для этой переменной: https://developer.mozilla.org/en-US/docs/Web/API/Window/name : rose:
@basarat
Спасибо за ваш ответ. Это имеет такое значение ...
Я не знал, что в глобальной области уже есть переменная name
:)
@DanielRosenwasser
Спасибо, что исправили документ :)
Самый полезный комментарий
Потому что в _global scope_ уже есть переменная с именем
name
. Попробуйте в своем браузереconsole.log(name)
и вы увидите пустую строку (или, возможно, другую строку) вместоundefined
.Исправить
Поместите переменную своего имени в _module_ или
namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html