'var' и 'let' в Typescript 1.5

В чем же разница между использованием " var" или " let" в Typescript? Я знаю, что "пусть" позволяет определять переменную далее в область без ее использования за пределами указанной области. Это, очевидно, хорошее преимущество для итераторов для циклов. Я знаю, что это определение ES6, поэтому компиляция на ES6 должна выглядеть почти идентичной с точки зрения "var" и "let" .

Но когда он компилируется в javascript ES5, который не поддерживает "let" , что именно происходит? Существуют ли странные имена переменных, которые создает компилятор, чтобы предотвратить использование указанных переменных в контексте файла Typescript? Что происходит в ситуациях, когда вы определяете множество переменных "let" во всей функции? Есть ли влияние на производительность, о котором я должен беспокоиться?

В принципе, , что происходит, когда Typescript компилирует, разрешает переменные в javascript ES5?

Ответы

Ответ 1

Самый простой способ найти ответы на эти вопросы, чтобы попробовать его на TypeScript Игровая площадка.

TypeScript переименовывает переменные в пределах области блока. Нет накладных расходов на производительность по сравнению с использованием обычных переменных, определенных с помощью var.

Этот код:

var i = 0;
for (let i = 0; i < 5; i++) {}
i++;

Скомпилируется:

var i = 0;
for (var i_1 = 0; i_1 < 5; i_1++) { }
i++;

Здесь есть дополнительная информация о let.