如何将Typescript编译成适用于nodejs 4的代码?

3

现在Node.js 4已经支持类和箭头函数,我该如何告诉TypeScript不要进行polyfill(填充)?


目前针对 Node 的 ES6 目标仍不够可靠。请参考我的答案。 - basarat
2个回答

4
现在Node.js 4已经支持类和箭头函数,我该如何告诉TypeScript不要对其进行填充(polyfill)?
你可能认为可以使用"target es6"选项,但是不要这样做。例如,在TypeScript中以下代码:
function test(bar = 123){

}

编译目标为es6的JavaScript:

function test(bar = 123) {
}

但是Node暂时还不支持默认参数 (参考链接)

在 Node 的兼容性表超过 TypeScript 之前,请格外小心!或者只使用 target es5


这正是我所想的... 我认为Babel可以禁用特定的ES6功能... - gilamran
是的...因为它的发射器是基于transformer(插件)的...所以特定的转换可以打开或关闭。 TypeScript有点更加单片化(但反过来更容易阅读,我个人认为)。 - basarat

1
假设您现在正在使用TypeScript来运行node,您可能会指定目标输出为ES5。这意味着它将把ES6/7功能转换成ES5的范式,以便在今天的浏览器和先前版本的node中运行。

为了在node v4中使用ES6的这些功能,您只需要更改构建过程以通过目标选项输出ES6即可。

注意:如果您正在使用命令行参数或tsconfig.json,则情况属实。


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