Node.js 对 TypeScript 功能的原生支持

2024/08/03

Node.js 22.6.0 版本以后可以通过设置实验标志 --experimental-strip-types 来执行 TypeScript 文件, Node.js 会将 TypeScript 源代码转译为 JavaScript 源代码(目前使用@swc/wasm-typescript)。在转译过程中,不执行类型检查,并且类型将被丢弃。

引入了 --experimental-strip-types 标志, 使Node.js能够运行仅包含类型注释的 TypeScript 文件。此类文件不包含需要转换的 TypeScript 功能,例如枚举或命名空间。Node.js将用空格替换内联类型注释,并且不执行类型检查。依赖于 tsconfig.json 中的设置的 TypeScript 功能(例如路径或将较新的 JavaScript 语法转换为较旧的标准)是有意不支持的。

启动功能

在以前 Node.js 是不支持直接运行 TypeScript 代码的, 我们一般需要一些第三方库的支持,比如说tsx vite-node

npx vite-node index.ts
npx tsx index.ts
# 或者
node --import=tsx index.ts

现在可以像bundeno 一样直接运行 TypeScript 代码(目前还通过--experimental-strip-types 标志启用)

node --experimental-strip-types index.ts

功能限制

参考