Node.js实验性支持TS第二步:TS专有语法可转为JS

点击上方 Nodejs技术栈,关注公众号
回复加群,加入 Node.js 技术交流群

此前发布 Node.js 已通过 --experimental-strip-types 标志实验性支持 TypeScript。这只是 Node.js 实验性支持 TypeScript 道路的第一步。对于一些 TypeScript 专有的功能,例如枚举、命名空间、装饰器等… 是不支持的。

近日,Node.js 又迈出了实验性支持 TypeScript 的第二步,在最新的 v22.7.0 版本中通过实验性标志[1] --experimental-transform-types 可将一些 TypeScript 专有的语法转为 JavaScript 代码。

如下例所示:

enum Color {
    Red = 'red',
    Green = 'green',
    Blue = 'blue',
}
function foo(color: Color) {
    console.log(color);
}
foo(Color.Red);
7a16b5cb4776d8eaebd48757a334d29d.png

在 Node.js 实验性支持 TypeScript 的路线图中,将这一步骤描述为 “解耦”,从 Node.js 的稳定性上来讲,支持太多的 TypeScript 语法会让 Node 变得不稳定,发生重大变化的可能性就越大,而且无法及时了解新功能。

在 Node.js 中支持一个可以单独升级的东西已经有了先例,那就是 NPM。虽然,每次安装 Node.js 会为我们捆绑一个默认的 npm 版本,但是 npm 是可以单独升级的。

同样的也可以为 TypeScript 转译器做同样的事情。于是,创建了独立加载器 Amaro[2],在 npm 上可以搜索到这个库。

如果 TypeScript 发布我们不支持的新功能或重大更改,或者用户想要使用新的实验性功能,他们可以单独升级。这确保用户不会被锁定。

参考资料

[1]

最新的 v22.7.0 版本中通过实验性标志: https://github.com/nodejs/node/pull/54283

[2]

Amaro: https://github.com/nodejs/amaro/pull/47


- End -

敬请关注「Nodejs技术栈」微信公众号,期望与志同道合的你一起打造优质 “Nodejs技术栈” 交流群,一起互相学习进步!可长按下方二维码添加【五月君】个人微信备注 “Node” 邀请入群。

c95d76bdc640368df35ead3d1e3e42c4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值