Node.js 稳定内置 TypeScript 执行(类型剥离现在为默认)

Node.jsTypeScriptDevOps

关键更新

Node.js 已经稳定了其内置的 TypeScript 支持:运行时的轻量级“类型剥离”转换器默认启用,并且在最近的 24.x 文档中不再发出实验性警告。这使得 Node 可以直接执行 .ts 文件(并监视它们),而无需外部转译器,前提是代码仅使用可擦除的 TypeScript 语法;需要 JavaScript 代码生成的构造(例如枚举或某些参数属性转换)仍然需要显式的转换标志。Node 有意忽略 tsconfig.json 的运行时行为,要求在导入中显式指定文件扩展名,并且默认情况下不会运行嵌套在 node_modules 下的 TypeScript 文件。

为什么这很重要

这是一个实用的变化,而不仅仅是便利:对于脚本、CLI 工具、简单后端和开发工作流程,您现在可以完全移除转译步骤,直接用 Node 运行 TypeScript 源代码(更快的迭代、更少的开发依赖、更简单的 CI 以应对快速任务)。然而,这并不是一个可以直接替代完整 TypeScript 构建管道的解决方案。运行时不执行类型检查,并且省略 tsconfig 规则,例如路径别名重写,因此需要类型安全、旧目标转译、打包兼容性或可预测模块解析的生产构建仍应包含适当的编译步骤(tsc、swc 或 esbuild)和测试/CI 类型检查。对于库作者和团队,预计会有一些小但重要的工具链变化:强制显式导入扩展,审查需要代码生成的 TS 特性的使用,并考虑渐进式采用(在开发/脚本中使用运行时执行,同时为发布保留构建步骤)。总体而言,这减少了许多日常开发任务的摩擦,但并未消除在生产中进行有意识的构建和测试实践的必要性。

来源

继续阅读