Несколько дней назад я пытался написать скрипт на Typescript в своей Visual Studio CodeIDE, где я пытался объявить и инициализировать переменную с ключевым словом let.

Но столкнулся с ошибкой. Частично это было связано с тем, что невозможно повторно объявить переменную блочной области.

Итак, я немного покопался в нем, чтобы выяснить причину ошибки. Я нашел следующее:

  1. Поскольку ключевое слово let ограничено блоком и, в отличие от var, его нельзя повторно объявить или переназначить в одном и том же блоке.
  2. После транспиляции переменная var1 моего файла main.ts также теперь доступна в транспилированном файле main.js как "var var1".
  3. Прямо сейчас после транспиляции есть две переменные с одинаковым именем var1; один из них находится в файле main.ts, объявленном как let (помните, что let нельзя переобъявить или переназначить), а другой — в файле main.js.
  4. Поэтому, естественно, код Visual Studio отображает ошибку в файле main.ts, потому что переменная там объявлена ​​с ключевым словом let.
  5. В результате он не позволяет транспилировать файл и отображает Невозможно повторно объявить блочную переменную «имя переменной».

Как решить?

Машинописный текст является модульным. И у каждого модуля есть свой блок. Таким образом, если бы вы каким-то образом могли заключить переменную, объявленную как let, в блок модуля, ошибка была бы устранена, потому что теперь ваша переменная let находится в отдельной области.

Для этого просто введите export в верхней части скрипта или дополнительно введите export {}. Теперь вы увидите, что ошибка устранена.

Надеюсь, эта статья поможет вам найти и решить проблему. Огромное спасибо! для вычитывания.