Kua*_*uan 10 typescript ecmascript-6
所有:
我对Typescript和ES6很新,首先让我困惑的是他们的关系,来自MSDN:
TypeScript 1.5添加了许多新的ES6功能,包括模块,解构,传播,for..of,符号,计算属性,let/const和标记字符串模板.
我的困惑是(我知道有很多帖子说,Typescript是JS的超集):
这意味着TypeScript只是使用它自己的方式(一些稍微差异的语法和变换)来重做已经存在于ES6中的东西(仅用于类型目的),
和
这是否意味着ES6基本上可以完成TypeScript中的所有操作?反之亦然
TypeScript是一种脚本代码,可转换为JavaScript-或ES5或ES6(以及ES3)。
TypeScript 1.5添加了许多新的ES6功能,包括模块,解构,散布,符号,计算属性,let / const和带标记的字符串模板。
这意味着您可以在TypeScript代码中使用模块,.. of和其他功能,并且TypeScript编译器会将您的代码转换为可完成相同功能的ESx兼容代码。让我们举个for..of例子:
TypeScript代码:
for (let t of [1,2,3]) {
console.log(t)
}
Run Code Online (Sandbox Code Playgroud)
像这样被移植到ES5:
for (var _i = 0, _a = [1, 2, 3]; _i < _a.length; _i++) {
var t = _a[_i];
console.log(t);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您以ES6为目标,那么移植就是:
for (let t of [1,2,3]) {
console.log(t);
}
Run Code Online (Sandbox Code Playgroud)
模块,扩展等的情况相同。在每种情况下,TypeScript生成的代码在ES5,ES6和ES6中的行为均相同(由于并非总是可能,因此已简化)。
TypeScript和ES6的表达能力没有差异。不同之处在于TypeScript编译器可帮助您对代码进行静态分析。否则,无论您可以在ES6中编程什么,都可以使用TypeScript和其他方法编程。