如果我只将它与Node一起使用,我可以将TypeScript转换为ES6吗?

时间:2017-01-06 10:59:53

标签: node.js typescript ecmascript-6

我正在编写一个在Node上运行的新应用程序。代码只能在节点服务器上运行,因此浏览器兼容性不是问题。代码库是用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)上运行正常,就我测试它而言。此外,咨询node.green表明大多数ES5和ES6功能都是在Node中实现的。

可悲的是,我找不到有关哪些JavaScript版本应与Node一起使用的任何信息或官方建议。据我所知,没有什么能阻止我使用ES6。

我的问题:我能否可靠将生成的ES6代码用于节点?

2 个答案:

答案 0 :(得分:1)

所有ES6实现细微差别都可以描述为功能。这是node.green所做的。

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

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

答案 1 :(得分:0)

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

  

所有ECMAScript 2015(ES6)功能分为三组,用于发货,暂存和进行中的功能:

     
      
  • V8认为稳定的所有出货功能在Node.js上默认打开,不需要任何类型的运行时标记。
  •   
  • 分阶段功能是V8团队认为不稳定的几乎完成的功能,需要运行时标志: - 和声。
  •   
  • 正在进行的功能可以通过各自的和声标志单独激活,但除非出于测试目的,否则强烈建议不要这样做。注意:这些标志由V8公开,可能会在没有任何弃用通知的情况下发生变化。
  •   

了解更多here