如果我只在Node中使用TypeScript,我可以将TypeScript转换为ES6吗?

我正在编写一个运行在Node上的新App。 代码只能运行在一个节点服务器上,所以浏览器兼容性不是问题。 代码库是用TypeScript编写的。

在我的tsconfig.json我为编译器设置了以下选项:

 { "include": [ "src/**/*" ], "compilerOptions": { "target": "es6", "module": "commonjs", "sourceMap": true, "noEmitOnError": true, "noImplicitAny": true, "noImplicitReturns": true, "noImplicitThis": true } } 

请注意 ,我的目标是ES6,但导出CommonJS模块!

由tsc(版本2.1.4)生成的代码在Node(版本6.9.1)上运行良好,据我testing它。 此外,咨询node.green显示大多数ES5和ES6function都在Node中实现。

可悲的是,我找不到任何关于Node应该使用哪个JavaScript版本的信息或官方build议。 据我所知,没有任何东西阻止我使用ES6。

我的问题 :我可以可靠地使用生成的ES6代码与节点?

所有的ES6执行细节可以被描述为特征。 这是在node.green完成的。

除了ES6模块,Node 6+完全(99%的兼容性,有一些小的差异)支持ES6。

所以不,不应该有意想不到的问题。 但是如果将ES6特定的代码转换为ES5,可能会有一些,所以ES5的目标可能会导致麻烦。

这就是Node.js网站所说的:

所有ECMAScript 2015(ES6)function分为三组,分别用于发货,上演和正在进行的function:

  • V8认为稳定的所有出货function默认在Node.js上打开,不需要任何types的运行时标志。
  • 分阶段function,几乎完成的function,不被V8团队认为是稳定的,需要一个运行时标志:–harmony。
  • 进行中的function可以通过各自的和声标志单独激活,但除非出于testing目的,否则这是非常不鼓励的。 注意:这些标志由V8公开,并可能在没有任何弃用通知的情况下更改。

在这里阅读更多