Несколько дней назад я пытался написать скрипт на Typescript в своей Visual Studio CodeIDE, где я пытался объявить и инициализировать переменную с ключевым словом let.
Но столкнулся с ошибкой. Частично это было связано с тем, что невозможно повторно объявить переменную блочной области.
Итак, я немного покопался в нем, чтобы выяснить причину ошибки. Я нашел следующее:
- Поскольку ключевое слово let ограничено блоком и, в отличие от var, его нельзя повторно объявить или переназначить в одном и том же блоке.
- После транспиляции переменная var1 моего файла main.ts также теперь доступна в транспилированном файле main.js как "var var1".
- Прямо сейчас после транспиляции есть две переменные с одинаковым именем var1; один из них находится в файле main.ts, объявленном как let (помните, что let нельзя переобъявить или переназначить), а другой — в файле main.js.
- Поэтому, естественно, код Visual Studio отображает ошибку в файле main.ts, потому что переменная там объявлена с ключевым словом let.
- В результате он не позволяет транспилировать файл и отображает Невозможно повторно объявить блочную переменную «имя переменной».
Как решить?
Машинописный текст является модульным. И у каждого модуля есть свой блок. Таким образом, если бы вы каким-то образом могли заключить переменную, объявленную как let, в блок модуля, ошибка была бы устранена, потому что теперь ваша переменная let находится в отдельной области.
Для этого просто введите export в верхней части скрипта или дополнительно введите export {}. Теперь вы увидите, что ошибка устранена.
Надеюсь, эта статья поможет вам найти и решить проблему. Огромное спасибо! для вычитывания.