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



我编写了一个在 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中实现的。

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

我的问题:我可以可靠地将生成的 ES6 代码与 Node 一起使用吗?

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

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

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

这是

Node.js网站必须说的:

所有 ECMAScript 2015 (ES6) 功能部件都分为三组,分别是已交付、暂存和正在进行的特性:

  • V8 认为稳定的所有交付功能在 Node 上默认打开.js并且不需要任何类型的运行时标志。
  • 分阶段功能,即 V8 团队认为不稳定的几乎完成的功能,需要一个运行时标志:--harmony。
  • 进行中的功能可以通过其各自的和谐标志单独激活,尽管除非出于测试目的,否则强烈建议不要这样做。注意:这些标志由 V8 公开,并且可能会更改,而不会发出任何弃用通知。

在此处阅读更多内容

相关内容

最新更新