Node.js 23.6 原生支持 TypeScript 的主要总结
主要观点
Node.js 23.6 版本正式引入了对 TypeScript 的原生支持,开发者无需额外配置或标志即可直接运行 TypeScript 文件。这一功能在 Node 22.6 中为实验性功能,现已稳定。原生 TypeScript 支持是开发者长期以来最期待的功能之一。
关键信息
直接运行 TypeScript 文件
- 开发者可以创建
index.ts
文件,并直接运行node index.ts
,Node.js 会自动移除 TypeScript 类型注解并执行生成的 JavaScript 代码。
- 开发者可以创建
功能限制
- Node.js 忽略
tsconfig.json
文件,因此依赖于tsconfig.json
设置的功能(如路径映射或将新语法转换为旧标准)不被支持。 - 不支持 JSX 文件。
- 不支持需要 JavaScript 代码生成的 TypeScript 语法(如
Enum
、namespace
、module
、参数属性和导入别名)。 - Node.js 仅支持可擦除语法(erasable syntax),即内联类型会被替换为空格。
- Node.js 忽略
TypeScript 5.8 的支持
- TypeScript 5.8 引入了
--erasableSyntaxOnly
标志,以支持这种工作流。
- TypeScript 5.8 引入了
与 Deno 和 Bun 的对比
- Node.js 的原生 TypeScript 支持使其更接近 Deno 和 Bun 等 TypeScript 原生运行时。
- Deno 仍然提供额外功能,如
tsconfig
支持和无需编译的 TypeScript 分发。
重要细节
不支持的主要语法
Enum
声明- 包含运行时代码的
namespace
- 包含运行时代码的传统
module
- 参数属性
- 导入别名
开发者反馈与路线图
- 开发者被鼓励查看功能路线图的详细讨论,包括团队做出权衡的原因以及开发者的反馈。
总结
Node.js 23.6 的原生 TypeScript 支持简化了 TypeScript 开发流程,但仍有部分功能限制。开发者需注意这些限制,并根据需求选择合适的工具(如 Deno 或 Bun)以获取更全面的 TypeScript 支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。