写点什么

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

  • 2025-09-03
    北京
  • 本文字数:978 字

    阅读完需:约 3 分钟

大小:507.14K时长:02:53
Node.js 迈向稳定的 TypeScript 支持:Amaro 1.0 发布

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 翻译,未经许可禁止转载。

 

原文链接:

https://www.infoq.com/news/2025/08/node-amaro-stable-ts-support/

2025-09-03 14:152

评论

发布
暂无评论

微博评论高性能高可用的设计

云里雾花

react源码解析2.react的设计理念

buchila11

React React Hooks

数据网格简史

俞凡

架构 数据

DDD领域驱动设计落地实践系列:初识DDD

慕枫技术笔记

架构 后端 签约计划第二季

深入了解Netty原理篇

邱学喆

Netty

Alibaba5轮视频面:同事+组长+主管+项目+HR,收割Java岗offer

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

Vue前端开发规范

CRMEB

Python 可以满足你任何 API 使用需求

华为云开发者联盟

Python API 程序 网络通信 公共数据

系统架构性能优化思路

五分钟学大数据

11月日更

精选2021年大厂高频Java面试真题集锦(含答案),面试一路开挂

热爱java的分享家

Java 架构 面试 程序人生 经验分享

5年crud经验,三个月啃透888页Java王者级核心宝典,竟翻身阿里p6

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

写代码的思路

king

react源码解析1.开篇介绍和面试题

buchila11

React

基于Serverless的端边云一体化媒体网络

华为云开发者联盟

Serverless 端边云 媒体网络 视频云 边缘云

Flutter 的动画包【Flutter专题4】

坚果

flutter 签约计划第二季

归并排序,我举个例子你就看懂了

华为云开发者联盟

算法 归并排序 序列 归并 分治法

质量基础设施“一站式”平台,NQI一站式云平台开发

电微13828808271

不愧是阿里p8大佬!终于把Java 虚拟机底层原理讲清楚了,请签收

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

【死磕Java并发】-----J.U.C之读写锁:ReentrantReadWriteLock

chenssy

11月日更 死磕 Java 死磕 Java 并发

在 Flutter 中使用 dio【Flutter专题3】

坚果

flutter 签约计划第二季

网络安全是一门高级学科,如何入门,看这里!

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

五面阿里拿下飞猪事业部offer,2021新鲜出炉阿里巴巴面试真题

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

六年Java老鸟,写给1-3年程序员的几点建议,满满硬货指导

热爱java的分享家

Java 架构 面试 程序人生 编程语言

网络协议之:一定要大写的SOCKS

程序那些事

网络协议 程序那些事 11月日更 SOCKS

技术解析+代码实战,带你入门华为云政务区块链平台

华为云开发者联盟

区块链 华为云 政务 Baas 异构链

Hadoop 企业级生产调优手册 (二)

大数据技术指南

11月日更

智慧警务系统开发,警务通app搭建

电微13828808271

大厂算法面试之leetcode精讲8.滑动窗口

全栈潇晨

算法面试 Leet Code

为什么要做漏洞扫描呢?

华为云开发者联盟

安全 风险 漏洞 漏洞扫描 安全认证

基于实践:一套百万消息量小规模IM系统技术要点总结

JackJiang

网络编程 架构设计 即时通讯 IM

Android C++系列:Linux信号(二)

轻口味

c++ android jni 11月日更

Node.js 迈向稳定的 TypeScript 支持:Amaro 1.0 发布_后端_Bruno Couriol_InfoQ精选文章