好消息!Node.js 现在可以直接运行 TypeScript 文件了! 🎉 只需设置实验性标志 --experimental-strip-types,Node.js 就会自动将 TypeScript 代码转换成 JavaScript 代码。
node --experimental-strip-types index.ts
为什么要移除类型?
顾名思义,类型移除就是将 TypeScript 代码中的所有类型信息都移除,将其转换成 JavaScript 模块。
例如,以下 TypeScript 代码:
const foo: string = "foo";
会被转换成:
const foo = "foo";
其他运行时也会将一些 TypeScript 特有的功能转换成 JavaScript,例如枚举,因为 JavaScript 中没有枚举。这个特性目前还没有实现,这意味着暂时还不能使用 Enum、namespaces 等功能。
为什么选择 @swc/wasm-typescript?
选择 @swc/wasm-typescript 的原因很简单:它简单易用。
其他工具要么需要 Rust,要么需要 Go,而 @swc/wasm-typescript 只是一个包含 wasm 文件和 JavaScript 绑定文件的小包。 Deno 也在使用 Swc 来实现同样的功能,它已经经过了实战考验。
未来,官方计划在原生层实现这个功能。感谢 @kdy1 发布了 Swc 版本!
⚠️ 具体的实现细节和限制,请参考 typescript.md 文件中的 PR 变更。