我如何将TypeScript转译成ES6?

47

基本上,我需要在我的集成开发环境中编写TypeScript代码(这样可以极大地简化开发),将其编译为ES6,然后应用babel.js(因为并非所有浏览器都支持大多数ES6)以获取生成的ES5脚本。

这个可行吗? 我该如何实现?


2
你为什么需要ES6作为输出?你试图解决什么问题? - Pointy
4
TypeScript 1.5有ES6输出模式,您可以通过Babel运行生成的JavaScript。 - CodingIntrigue
为什么不一次性编译到ES5呢? - Raulucco
1
我想使用TypeScript编写ES6应用程序,现在就可以部署,但当ES6成为主流时,我将删除Babel并获得相同的结果。 - zmii
1
不确定这是什么项目,但在互联网上使用最新浏览器的人占比显著的百分比需要几年时间。 - Mark Knol
2
我很好奇为什么你想将TypeScript编译成ES6,然后再转换成ES5,因为TypeScript可以直接编译成ES5。同一个TypeScript代码库几乎可以转换成ES5和ES6,所以如果你现在将代码编译成ES5,以后可以重新编译整个代码库成ES6而不需要改变任何一行代码。 - John Weisz
4个回答

69

可以。

你可以将TypeScript编译器指向ES6。

例如,将此内容添加到您的命令行参数中:

--target es6

28

可以的。 要么通过添加--target es2015,要么通过将target添加到您的tsconfig.json文件中:

--

{
  "compilerOptions": {
    "target": "es2015"
  }
}

目标支持的选项有:

  • "ES3"(默认)
  • "ES5"
  • "ES6"/"ES2015"
  • "ES2016"
  • "ES2017"
  • "ESNext"

还有很多其他的配置选项。你可以在这里查看它们: 编译器选项

有些选项仅允许在tsconfig.json中使用,而不是通过命令行开关。


5
你可以使用TypeScript编写纯ES6代码,然后将其转换为ES3或ES5。因为TypeScript包含了ES6的新增功能。
就像使用Less编写CSS一样,你可以在less文件中编写纯CSS代码,并且它会正常编译。
对于TypeScript 1.8语言规范:
TypeScript是JavaScript的语法糖。 TypeScript语法是ECMAScript 2015(ES2015)语法的超集。每个JavaScript程序同时也是TypeScript程序。
TypeScript语法包括ECMAScript 2015的所有特性,包括类和模块,并提供将这些特性转换为符合ECMAScript 3或5标准的代码的能力。

2

TypeScript基本上就是带有极少语法糖的ES6。我建议你写纯ES6而不是TypeScript,但另一方面,TypeScript的工具值得花费额外的努力去编写TypeScript并将其转换为ES6,然后让Babel处理剩下的部分。

正如评论中所指出的那样,从TypeScript 1.5开始,你可以将其转换为ES6,这是一个更加方便的选项。


1
那个转译器是否包含了 ES6 的所有特性? - zmii
1
除了 TypeScript 具有可选类型、接口允许强类型化未经过类型定义的 JS 依赖项等诸多功能。它的核心是 ES6,但更加强大。 - x0n
2
写Typescript的主要好处之一不是它必须编译吗?这样会帮助你找到错误吗? - thedanotto
我发现TypeScript认为String.repeat()不存在。 - Frederick Nord

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接