Node.js 迈向稳定的 TypeScript 支持:Amaro 1.0 发布

B站影视 韩国电影 2025-09-07 10:30 1

摘要:Node.js 团队 最近发布了 Amaro v1.0.0,向稳定支持 TypeScript 迈出了重要一步。Amaro 是 Node 官方提供的类型剥离加载器,也是官方.ts 加载的重要基础。

作者 | Bruno Couriol

译者 | 平川

Node.js 团队 最近发布了 Amaro v1.0.0,向稳定支持 TypeScript 迈出了重要一步。Amaro 是 Node 官方提供的类型剥离加载器,也是官方.ts 加载的重要基础。

长期以来,Node.js 一直缺乏对 TypeScript 的支持,开发者不得不依赖第三方工具链或使用像 Deno 这样的 JavaScript 运行时替代方案,后者原生支持 TypeScript。然后,从 23.6 版本(于今年 1 月发布)开始,开发者可以在 Node.js 中原生运行 TypeScript 了。Amaro 转变为稳定状态使 Node 向稳定的 TypeScript 支持又迈进了一步。

Amaro 是一个 @swc/wasm-typescript 封装器,后者是 SWC TypeScript 解析器 的 WebAssembly 移植。在 Node.js 内部,SWC 被用于类型剥离。Amaro 的一个关键特性是能够作为全局加载器在 node_modules 中处理 TypeScript 文件,这是它比 Node.js 当前的实验性支持有显著优势的一个地方。它还支持两种模式:strip-types,这是默认的,只移除类型注解,以及 transform-types,用于更复杂的转换,如枚举。

在 Reddit 等平台上的讨论中,开发者普遍持积极但谨慎的态度。ismail5412 在评论潜在限制时说:

在一些项目中,我们移除了枚举,并在生产中使用了它。效果很好。[Reddit]

在 Reddit 上一项关于在生产中使用原生类型剥离的讨论中,一些开发者对生产准备情况表示了担忧:

对不起,那个功能的“稳定”版本在任何 Node LTS 中都提供了吗?如果不是,我们如何在“生产”中使用它?

kei_ichi

尽管有这些保留意见,部分开发者已经成功地利用了这个功能:

它在 23.x 中就已经取消了标记,所以在 24 中自然也是。我在生产中使用了 22 版本,没有任何问题(前提是你正确配置了类型检查,带有 erasableSyntaxOnly 等)。

Nocticron

还有其他人指出,原生支持正在取代对外部工具的需求:

我在一个真正的生产应用程序中使用了它,尽管只是在本地开发环境以及生产 CI 管道中使用,没有任何问题……如果你能使用 Node 的原生类型剥离,那么肯定就不需要那些包了[tsx/ts-node]。

abrahamguo

SWC 是一个基于 Rust 开发的、面向下一代快速开发工具的可扩展平台。像 Next.js、Parcel 和 Deno 这样的工具,以及 Vercel、ByteDance、腾讯、Shopify、Trip.com 等公司都使用了 SWC。

Amaro 遵循 MIT 许可。欢迎大家遵循 GitHub 项目贡献指南 和 行为准则 做出贡献。Amaro 1.0 支持 TypeScript 5.8。

原文链接:

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

来源:极客邦科技

相关推荐