Node.js 合并了为 TypeScript 添加实验性支持的 PR。
https://github.com/nodejs/node/pull/53725
根据 PR 的描述,开发者只需配置实验性 flag--experimental-strip-types
就可以执行 TypeScript 文件。
Node.js 会将 TypeScript 代码自动转译为 JavaScript 代码。在转译过程中,不会执行类型检查,类型会被丢弃——Node.js 团队称之为"type stripping"(类型剥离)。
类型剥离意味着删除所有types
,转换 JavaScript 模块中的输入。
比如下面的 JavaScript 代码
const foo: string = "foo";
会转译为:
const foo = "foo";
此外,该实验性功能目前存在以下限制:
-
无法对枚举、命名空间等类型进行转换
-
没有为 .ts 文件添加 .js 扩展
-
无法在 node_modules 中运行 TS
Node.js 团队介绍了提供该功能的动机:“让用户能够执行 TypeScript 文件对于推动生态系统向前发展至关重要。我们必须承认用户希望在不安装外部依赖项或加载程序的情况下运行node foo.ts
。”