Node.js 将原生支持 TS!

Node.js 近日刚合并了一个 PR#53725,主要内容是通过设置 flag --experimental-strip-types,使得可以在 Node.js 中直接执行 TypeScript 文件 。Node.js 会自动将 TypeScript 源代码转译为 JavaScript 源代码,不需要手动安装依赖来做转译了 。在这个转译过程中,不会进行类型检查,所有的类型信息都会被丢弃。

关于动机。在以往的所有调查中,用户都表达了这个需求,必须承认这一点不容忽视,用户有需求就要重视。同时,近年来 TypeScript 的普及率也是越来越高(现在不学 TS 感觉自己都要被淘汰了,哈哈哈...)。

通过 Node.js 内置 TS 功能,用户是不需要安装外部依赖和一些加载器的。

例如,直接运行 node index.ts

ts 复制代码
const foo: string = "foo";

转换后的代码为:

js 复制代码
const foo = "foo";

其他运行时环境也会将一些 TypeScript 特有的功能转化为 JavaScript,例如枚举(Enums),而枚举在 JavaScript 中是不存在的。至少在这个 PR 的初始阶段,不会进行这种转化,这意味着使用 Enum, namespaces 等特性将不可行。

在工具上选择 @swc/wasm-typescript,因为这考虑到了简洁性,其它工具可能会将 Rust 和 Go 也添加到工具链中,而 @swc/wasm-typescript 只是一个包含 wasm 文件和一个用于绑定 js 文件的小包,并且 Swc 目前也被 Deno 用于同样的目的,还经过了实战测试 😄。

目前还存在一些限制:

  1. 不支持需要转化的 TypeScript 特性(如枚举、命名空间等)。
  2. .ts 文件不支持 .js 扩展名。
  3. 无法运行 node_modules 中的 TypeScript 文件。
  4. 不支持源映射,但由于我们执行空格处理(用空格替换移除的代码),这样就不需要改变原始错误堆栈,因此不需要源映射,参考 Sourcemaps 问题。

该 PR 只是实现实验性支持 TS 的第一步,还有一些工作要做,详细参考实验性支持 TS 路线图

最后,关于 Node.js 将支持 TS 你怎么看?欢迎评论区留言!

相关推荐
一次旅行8 小时前
DeepSeek‑V4.1‑Flash‑1017完整解读:模型升级+Search/Fetch搜索API开放,Agent开发者要注意哪些坑
前端·网络·人工智能
原则猫17 小时前
UDP 到底怎么实现可靠的
前端
Java后端的Ai之路17 小时前
14、ReactJS - 路由(Router)
前端·react.js·状态模式
持敬chijing17 小时前
白盒测试与代码审计-js登录逆向实战
javascript·网络·安全·web安全·网络安全·网络攻击模型
优选资源分享18 小时前
PicGo v3.0.3 新版 | 开源免费图床工具
javascript·笔记·electron
裕晟资质规划18 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
ShineWinsu18 小时前
对于JavaScript:JavaScript基础语法的解析
开发语言·前端·javascript·面试·web·基础语法·循环
月夏18 小时前
Vue3 转 React:18 项对照表 + 5 个必踩的坑(附 7 天上手路线)
前端
广州华水科技19 小时前
单北斗GNSS位移监测系统的应用与维护解析
前端
普通人619 小时前
php+html+canvas实现树状打开的结构
开发语言·javascript·html5·1024程序员节