Node.js 23.6 现在原生运行 TypeScript

Node.js 23.6 原生支持 TypeScript 的主要总结

主要观点

Node.js 23.6 版本正式引入了对 TypeScript 的原生支持,开发者无需额外配置或标志即可直接运行 TypeScript 文件。这一功能在 Node 22.6 中为实验性功能,现已稳定。原生 TypeScript 支持是开发者长期以来最期待的功能之一。

关键信息

  1. 直接运行 TypeScript 文件

    • 开发者可以创建 index.ts 文件,并直接运行 node index.ts,Node.js 会自动移除 TypeScript 类型注解并执行生成的 JavaScript 代码。
  2. 功能限制

    • Node.js 忽略 tsconfig.json 文件,因此依赖于 tsconfig.json 设置的功能(如路径映射或将新语法转换为旧标准)不被支持。
    • 不支持 JSX 文件。
    • 不支持需要 JavaScript 代码生成的 TypeScript 语法(如 Enumnamespacemodule、参数属性和导入别名)。
    • Node.js 仅支持可擦除语法(erasable syntax),即内联类型会被替换为空格。
  3. TypeScript 5.8 的支持

    • TypeScript 5.8 引入了 --erasableSyntaxOnly 标志,以支持这种工作流。
  4. 与 Deno 和 Bun 的对比

    • Node.js 的原生 TypeScript 支持使其更接近 Deno 和 Bun 等 TypeScript 原生运行时。
    • Deno 仍然提供额外功能,如 tsconfig 支持和无需编译的 TypeScript 分发。

重要细节

  • 不支持的主要语法

    • Enum 声明
    • 包含运行时代码的 namespace
    • 包含运行时代码的传统 module
    • 参数属性
    • 导入别名
  • 开发者反馈与路线图

    • 开发者被鼓励查看功能路线图的详细讨论,包括团队做出权衡的原因以及开发者的反馈。

总结

Node.js 23.6 的原生 TypeScript 支持简化了 TypeScript 开发流程,但仍有部分功能限制。开发者需注意这些限制,并根据需求选择合适的工具(如 Deno 或 Bun)以获取更全面的 TypeScript 支持。

阅读 16 (UV 16)
0 条评论