typescript是不是需要先编译成es6再编译成es5

Posted

技术标签:

【中文标题】typescript是不是需要先编译成es6再编译成es5【英文标题】:Does typescript need to be compiled to es6 and then to es5typescript是否需要先编译成es6再编译成es5 【发布时间】:2016-09-23 23:23:50 【问题描述】:

为什么 typescript 需要编译成 ES6(或 ES2015)?据我所知,Typescript 包含 ES6 中存在的所有功能。所以与其将 typescript 代码编译为 ES6,然后使用 babel 将 ES6 代码编译为 ES5,不如直接将 typescript 代码编译为 ES5。据我所知,编译到 ES6 只是添加了一个不必要的编译步骤。 对此的任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

为什么不直接将 typescript 代码编译为 ES5。据我所知,编译到 ES6 只是添加了一个不必要的编译步骤。对此的任何帮助将不胜感激。

确实,仅使用打字稿就理想(这就是我所做的)。但是如果你想在原生不支持它们的浏览器(ES5 浏览器)中使用某些尖端的 ESNext 特性(例如 async/await 或生成器),因为 TypeScript 不支持将它们转换为 ES5(但很快)你可能需要使用 TypeScript + Babel。

【讨论】:

【参考方案2】:

TypeScript 支持直接转换为 "ES3"(默认)、"ES5""ES6"/"ES2015""ES2016""ES2017""ESNext"

您可以通过将 --target 标志指定为 compilation option 来直接转译为 ES5。

$ tsc --target ES5

【讨论】:

以上是关于typescript是不是需要先编译成es6再编译成es5的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript01 编译环境的搭建字符串特性类型特性

初始TypeScript

nodejs 支持typescript吗

在 Typescript 编译期间在相对导入语句上附加 .js 扩展名(ES6 模块)

TypeScript-基础教程

typeScript基础学习