在 Typescript 中使用“var”或“let”到底有什么区别?我知道'let'允许变量被进一步定义到一个范围内,而不是在所述范围之外使用它。对于 for 循环中的迭代器来说,这显然是一个很好的优势。我知道这是一个 ES6 定义,所以编译成 ES6 应该看起来在“var”和“let”方面几乎相同。
但是,当它编译成不支持“let”的 ES5 javascript 时,到底发生了什么?编译器是否创建了奇怪的命名变量,以防止在 Typescript 文件的上下文中使用所述变量?如果您在整个函数中定义了许多“let”变量,会发生什么情况?我应该关注性能影响吗?
基本上,当 typescript 将 let 变量编译为 ES5 javascript 时发生了什么?
最佳答案
找到此类问题答案的最简单方法是在 TypeScript Playground 中尝试一下.
TypeScript 重命名 block 范围内的变量。与使用 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++;
Here是关于 let
的更多信息。
关于compilation - Typescript 1.5 中的 'var' 和 'let',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051173/