在Typescript 1.5中'var'和'let'

Zac*_*Dow 17 compilation ecmascript-5 typescript ecmascript-6

在Typescript中使用' var '或' let ' 之间究竟有什么区别?我知道'let'允许将变量进一步定义到范围中,而不在所述范围之外使用它.对于for循环中的迭代器来说,这显然是一个很好的优势.我知道这是一个ES6定义,因此对ES6的编译在'var'和'let'方面应该看起来几乎相同.

但是,当它编译成不支持'let'的ES5 javascript时,到底发生了什么?是否存在编译器创建的奇怪命名变量,以防止在Typescript文件的上下文中使用所述变量?在整个函数中定义许多"let"变量的情况下会发生什么?我应该关注性能影响吗?

基本上,当打字稿编译时,将变量发送到ES5 javascript会发生什么?

tho*_*epo 19

查找这些类型问题的答案的最简单方法是在TypeScript Playground中进行尝试.

TypeScript重命名块范围内的变量.与使用定义的常规变量相比,没有性能开销var.

这段代码:

var i = 0;
for (let i = 0; i < 5; i++) {}
i++;
Run Code Online (Sandbox Code Playgroud)

编译为:

var i = 0;
for (var i_1 = 0; i_1 < 5; i_1++) { }
i++;
Run Code Online (Sandbox Code Playgroud)

以下是有关的更多信息let.

  • 你是对的,这可能是挖掘类似东西的最佳方式.有趣的是,如果你试图输入var i_1,它会自动将let放入i_2.有点整洁. (2认同)