Node.js 历史性一刻!原生 TS 支持正式 Stable,告别 ts-node

Node.js 的历史性一刻来了。

2025 年 12 月 10 日,Node.js 官方发布了 v24.12.0 (LTS) 版本。

在这个版本中,有一个不起眼但分量极重的更新:Type Stripping(类型剥离)功能被标记为稳定版(Stable)。

这意味着,你以后可能再也不需要安装 ts-nodetsx,也不需要配置繁琐的 babelwebpack,就能直接用 Node.js 运行 TypeScript 代码了。

这是 Node.js 诞生以来,对 TypeScript 拥抱得最紧的一次。

什么是 "Type Stripping"?

简单来说,这就是 Node.js 对 TypeScript 的"原生支持"。

但在你欢呼之前,我们需要先搞清楚它的原理。Node.js 并没有内置一个完整的 TypeScript 编译器(TSC)。它不会去检查你的代码有没有类型错误。

它的做法非常"简单粗暴":在运行代码之前,迅速把你代码里的 TypeScript 类型标注(Type Annotations)全部"脱掉",把它变成纯净的 JavaScript,然后交给 V8 引擎执行。

这就好比你去坐安检。

  • 以前(tsc / ts-node): 安检员会仔细检查你穿的这件"类型大衣"合不合身,扣子有没有扣对(类型检查),检查没问题了,再让你脱掉大衣进去。

  • 现在(Native Type Stripping): 安检员根本不管你大衣合不合身,他只负责帮你把大衣脱掉,然后直接让你进去。

这种方式的最大的优点就是。因为它跳过了最耗时的"类型检查"步骤。

怎么用?

在 Node.js v24.12.0 LTS 之前,你可能需要加各种 flag(比如 --experimental-strip-types)。

但现在,它Stable了。

你只需要像运行普通 JS 文件一样:

go 复制代码
node app.ts

没错,就是这么简单。

只要你的 .ts 文件里只包含了符合规范的 TypeScript 语法(不用构建工具就能抹除的语法),它就能直接跑起来。

有什么限制?

"原生支持"听起来很美,但它不是万能的。为了保证性能和兼容性,Node.js 的这个功能有几个硬性限制,你必须知道:

1. 它不负责查错 再次强调,Node.js 只负责运行,不负责体检 。如果你把 string 赋值给了 number,Node.js 运行时可能不会报错(除非逻辑本身有错),直到代码跑偏。 所以,你依然需要在编辑器里(VS Code)或者 CI/CD 流程中运行 tsc --noEmit 来做类型检查。

2. 只能用"可擦除"的语法Node.js 只能处理那些"删掉也不影响逻辑"的 TS 语法。

  • 支持: Interface(接口)、Type Alias(类型别名)、Generics(泛型)、函数参数类型标注。

  • 不支持: Enum(枚举)、Namespace(命名空间)、Decorator(装饰器,除非是新的标准装饰器)。

因为像 Enum 这样的语法,编译后会生成额外的 JavaScript 代码(不仅仅是删掉那么简单),Node.js 的轻量级剥离器处理不了。

3. 显式扩展名 在 import 文件时,你必须写全扩展名,比如 import { sum } from './math.ts'。这和我们习惯的省略 .ts 后缀不太一样。

对我们意味着什么?

虽然有种种限制,但这依然是一个巨大的进步。

对于脚本编写、小型工具开发、或者本地快速调试来说,体验提升是飞跃级的。

  • 以前: 写个小脚本,得先 npm init,装 typescript,装 ts-node,写 tsconfig.json... 还没开始写代码,半小时过去了。

  • 现在: 创建 script.ts,写代码,node script.ts。完事。

这也释放了一个强烈的信号:TypeScript 已经是事实上的标准了。

连 Node.js 这样庞大的运行时都在向它妥协、为它优化。未来的 JavaScript 生态,原生支持 TypeScript(哪怕只是剥离类型)将成为标配。

总结

Node.js v24.12.0 LTS 的这次更新,虽然没有完全替代 tsc,但它精准地解决了开发者"想直接运行 TS 文件"的痛点。

它没想取代构建工具,但它想让你在开发阶段过得更舒服一点。

相关推荐
不总是7 小时前
Windows 系统 Node.js 免安装版(zip)安装与配置教程(2026 最新)
前端·windows·node.js
蓝乐14 小时前
Express 知识点总结
node.js·express
kylinmin17 小时前
Node.js安装及环境配置超详细教程(以win11为例子)
node.js
阿奇__17 小时前
基于 Node.js 与智谱 AI 的 RAG 工程实践
人工智能·node.js
hacker_LeeFei18 小时前
前端辨识:npx、npm 、pnpm的区别
前端·npm·node.js
草明20 小时前
检查 node.js 项目中的漏洞
node.js·漏洞·audit
前端程序猿i20 小时前
PM2 使用详解:Node.js 项目后台运行、守护进程、日志与生产部署
node.js·pm2
m0_535817551 天前
从0到1上手Claude Code:Windows安装+88api配置全流程
windows·gpt·node.js·claude·claudecode·88api
大家的林语冰1 天前
Deno 2.8 正式发布,再次超越 Bun,史上最大的次版本升级诞生!
前端·javascript·node.js
hdsoft_huge2 天前
全开源数字孪生系统搭建方案:全套技术文档
vue.js·开源·node.js·echarts·webstorm