4 月 22 日,微软宣布 TypeScript 7.0 Beta 正式发布。这一次,TypeScript 团队干了一件让整个 JS 社区炸锅的事——他们把编译器和工具栈,从 TypeScript/JavaScript 底层完全移植到了 Go。速度通常比 6.0 快约 10 倍。编译 VS Code 代码库从 78 秒缩到 7.5 秒。消息一出,有人叫好,有人愤怒,更多人在问:TypeScript 这是 “背叛” JavaScript 了吗?

年初,微软官宣了一个叫 “Project Corsa” 的计划:用 Go 语言,重写整个 TypeScript 编译器。不是 TypeScript,不是 Rust,是 Go。重写之后,编译速度预计提升10 倍。
4 月 22 日,微软正式发布 TypeScript 7.0 Beta。在过去的近一年中,微软开发者将现有的 TypeScript 代码库从 TypeScript(作为编译成 JavaScript 的引导代码库)移植到了 Go。通过结合原生代码速度和共享内存并行性,TypeScript 7.0 的速度通常比 TypeScript 6.0 快约 10 倍。
消息一出,社区立刻分裂。支持派说:“终于!大型项目编译几分钟的时代,终于要结束了。”反对派说:“TypeScript 自己都是用 TypeScript 写的,这是灵魂。用 Go 重写?这是 ‘背叛’。”
最大的争议点:为什么选 Go,而不是 Rust? 这是问得最多的问题。微软给出的解释包括:Go 的编程风格与现有 TypeScript 代码库高度相似,移植更容易;goroutine原生支持并行类型检查;垃圾回收针对这种超大量小对象的编译器场景优化得很好;TypeScript 团队已有 Go 经验。
微软实际上是在 TypeScript 6.0 发布前就启动了 Go 重写计划。他们把 6.0 定位为 “基于 JS 编译器的最后一个版本”,所以 7.0 才是真正的 Go 重写版。
微软自家的 VS Code 代码库约 150 万行 TypeScript,旧编译器编译约 78 秒,新tsgo只用了 7.5 秒,快 10.4 倍。Playwright 和 TypeORM 等项目也报告了约 10-13 倍的性能提升。
在编辑器方面,导入补全、快速跳转、查找所有引用的响应时间也大幅缩短,内存使用量约为旧版的一半。
官方强调新的 Go 代码库是从现有实现中系统性移植而来,类型检查逻辑与 TypeScript 6.0 完全一致,不需要为新编译器重构代码。新tsgo命令行工具与旧tsc参数行为完全兼容。
目前通过@typescript/native-preview包名安装,命令行入口是tsgo。官方表示稳定的程序化 API 预计要到 7.1 版本。
TypeScript 团队用 Go 重写编译器,让大型项目编译从 “喝杯咖啡” 变成 “眨个眼”。有人解读为 “背叛”,但也许更像一次务实的 “脱胎换骨”。
你愿意现在就装个 Beta 版试试吗?10 倍速,值得一试。
# 在现有项目中安装 TS 7.0 Beta
npm install -D @typescript/native-preview@beta
# 使用新编译器检查类型(体验10倍速度)
npx tsgo --noEmit
你会为了 10 倍速尝鲜 Beta 版吗?评论区聊聊你的选择。点个赞让我看到有多少人已经换上了。