TypeScript 7.0 来了:当 tsc 用 Go 重写之后

TypeScript 7.0 RC:这次是真的 typescript@rc,不只是 tsgo

本文基于 TypeScript 7.0 RC(2026-06-18 发布)撰写。重点是:Go 原生编译器已经从预览阶段的 tsgo 正式走进 typescript@rc 发布通道,当前版本 7.0.1-rc

引言

TypeScript 7 的消息已经传了很久,但之前大多数人的注意力都在 tsgo 这个实验代号上。2026 年 6 月 18 日,微软把 Go 原生编译器正式放进了 typescript@rc 通道------这意味着它不再是旁路预览包,而是接替 tsc 的下一个主版本。

如果你在过去几年里维护过大型 TypeScript 项目,应该熟悉这些场景:

  • 本地保存文件后,VS Code 的 TypeScript 状态栏要转好几秒才出类型错误;
  • CI 里的 tsc --noEmit 动辄跑上一两分钟,成为整个流水线里最慢的一环;
  • 打开一个百万行级别的 monorepo,语言服务初始化就要喝一口咖啡。

这些痛点的根源是旧版编译器用 TypeScript 自举,再编译成 JavaScript 跑在 Node.js 上。随着项目规模变大,JS 运行时的解释开销和单线程模型逐渐成为瓶颈。

2025 年 3 月,微软 TypeScript 团队首次披露了 Project Corsa :把编译器和语言服务整体移植到 Go。一年三个月后,TypeScript 7.0 RC 发布,Go 原生编译器终于以 typescript@rc 的形式走到了普通开发者面前。

为什么选 Go?

这个问题在公布之初就引发了很多讨论。大家原本猜测的可能是 Rust 或 C++,结果微软选了 Go。

按照官方的解释,核心原因是工程效率与可移植性的平衡

  • Rust 性能更强,但完全重写需要更长时间,维护门槛也更高;
  • C/C++ 同样快,但内存安全和跨平台构建会让团队付出额外成本;
  • Go 编译速度快、并发模型简单、跨平台构建成熟,同时性能足够支撑原生编译器的需求。

更关键的一点是:这次不是"重写",而是有组织的移植。团队尽量保持类型检查逻辑的结构与旧版一致,从而保证语义一致,而不是重新发明一套编译器。

性能提升到底有多大?

官方公布的数字非常夸张,但确实是真实项目跑出来的结果:

代码库 TS 6(旧 tsc) TS 7(typescript@rc 的 Go 原生 tsc) 提速
VS Code(约 150 万行) 77.8s 7.5s ~10x
Playwright 11.1s 1.1s ~10x
TypeORM 17.5s 1.3s ~13x

除了全量类型检查,编辑器冷启动提升也很明显:VS Code 项目加载从 9.6 秒降到 1.2 秒左右。内存占用大约减少一半。对于大型 monorepo 来说,这意味着开发反馈循环和 CI 成本都会有显著改善。

如何尝鲜?重点:直接装 typescript@rc

TypeScript 7.0 RC 已经可以通过 typescript@rc 标签安装:

bash 复制代码
npm install -D typescript@rc
npx tsc --version   # Version 7.0.1-rc

关键变化 :从 RC 开始,Go 原生编译器不再以 tsgo 这个旁路命令存在,而是直接接管 tsc。你平时怎么调用 tsc,现在还怎么调用,只是它底下已经换成了 Go 实现。

如果你之前追的是 nightly 预览包,习惯用的是 tsgo,现在需要区分两条线:

场景 安装命令 可执行文件
RC 正式通道 npm install -D typescript@rc tsc
Nightly 预览通道 npm install -D @typescript/native-preview tsgo

也就是说,日常项目尝鲜请直接用 typescript@rc,不要再把 tsgo 当作 TS7 的代名词

编辑器端可以安装 VS Code 的 TypeScript Native Preview 扩展,然后在设置中开启:

json 复制代码
"typescript.experimental.useTsgo": true

并行化与新参数

TypeScript 7.0 利用共享内存并行处理解析、类型检查和 emit。其中类型检查的并行度可以通过 --checkers 控制:

bash 复制代码
npx tsc --checkers 8

默认值是 4。核心数更多的机器可以适当调高,但内存占用也会随之增加;CI 等内存受限环境则可能需要调低。

迁移前需要知道的事

虽然 RC 已经非常接近生产可用,但仍有几个关键点需要考虑:

  1. 程序化 API 还不稳定

    官方表示稳定 API 要等到 TypeScript 7.1 。依赖 typescript 包内部 API 的工具链------例如 typescript-eslintts-morphts-node 的某些用法------还不能直接迁移。

  2. 可以并行安装 TS6 和 TS7

    微软发布了兼容包 @typescript/typescript6,提供 tsc6 命令,方便与 TS7 的 tsc 共存:

    bash 复制代码
    npm i -D typescript@npm:@typescript/typescript6
  3. 建议先对比再切换

    在 CI 里同时跑 TS6 的 tsc --noEmit 和 TS7 的 tsc --noEmit,确认错误、输出行為一致后再正式切换。

  4. 生产环境仍建议等 GA

    RC 适合日常开发和 CI 实验,关键生产发布最好等正式版。

对前端生态的影响

TypeScript 7.0 的速度提升会重塑很多工作流:

  • 编辑器体验:大型项目的语言服务启动和补全响应会明显变快;
  • CI 成本:类型检查阶段大幅缩短,Runner 等待时间减少;
  • 工具链分层:类型检查(tsc)和转译(esbuild、SWC、Rolldown)的职责会更加清晰,tsc 终于不再因为慢而被绕开。

结语:重点是 typescript@rc

TypeScript 7.0 不是一次普通的大版本更新,而是整个工具链底层运行时的替换。过去几年大家传的是"TS7"和"tsgo",但真正值得关注的节点是 2026 年 6 月 18 日 Go 原生编译器进入 typescript@rc 通道

从这一刻起,TS7 不再是一个实验代号,而是可以通过 npm install -D typescript@rc 直接安装的下一个主版本。tsgo 完成了它的历史使命:把预览验证做扎实;接下去的接力棒交给了 tsc

对于普通开发者来说,最直接的收益就是"类型检查不再拖慢开发节奏"。如果你还没试过,现在就是最好的时机:

bash 复制代码
npm install -D typescript@rc

然后跑一遍你项目的类型检查,感受一下 10 倍提速是什么体验。

相关推荐
阳火锅3 小时前
😭测试小姐姐终于不骂我了!这个提BUG神器太香了...
前端·javascript·面试
林希_Rachel_傻希希5 小时前
js里面的proxy理解。以及vue3响应式数据设计底层
前端·javascript·面试
阿黎梨梨5 小时前
AI Loop:告别“人肉写提示词”,让代码替你“鞭策”AI
javascript·人工智能
Go_error5 小时前
Datatypes:Go 轻松支持数据库JSON类型
后端·go
竹林8189 小时前
用 wagmi v2 + viem 监听链上事件,我踩了三天坑终于搞懂了实时日志与历史补全
javascript
只一9 小时前
😭从回调地狱到 async/await:一文打通 Ajax 与 JS 异步编程
javascript
Flynt9 小时前
装上TypeScript 7.0 RC之后,最让我意外不是10倍提速
typescript·visual studio code
疯狂SQL9 小时前
手写高性能在线 JSON 工具|Web Worker 工程化打包 + 语法自动修复 + 多语言代码生成实战
typescript·json·next.js·web worker·前端性能优化·esbuild·源码实战
weedsfly9 小时前
语法糖褪去之后——Babel 转译产物中的 JavaScript 本貌
前端·javascript