配了八年 TypeScript,每次跑 tsc 我都要去泡咖啡——今天它的编译器彻底被 Go 重写了,速度涨了 10 倍

每次 tsc 一跑,整个团队就开始讨论”中午吃什么”——TypeScript 编译慢这件事,几乎是每个前端团队的共同记忆。但 2026 年 7 月 8 日,这件事彻底变了。微软发布了 TypeScript 7.0,整个编译器Go 重写,官方实测大型项目提速 8 到 12 倍。Slack 的 CI 类型检查从 7.5 分钟降到 1.25 分钟,VS Code 本身的全量类型检查从 125 秒降到 10 秒。

为什么突然快了 10 倍

TypeScript 7.0(内部代号 Corsa)是微软从 2024 年底启动的项目,目标很直接:把 TypeScript 编译器从 JavaScript 翻译成 Go native 二进制文件。

快的原因有三个。

第一是 native 执行。之前的 tsc 本质上还是跑在 Node.js 上的 JavaScript,每次启动都要先唤醒 JS 引擎、等 JIT 预热。Go 编译出来的二进制没有这个过程,直接跑。

第二是并行类型检查。之前的编译器基本上是单线程的。TS 7 默认开 4 个并行检查器(–checkers 4),多核机器上可以继续加到 8 个——微软自己的测试,8 个 checker 让 VS Code 的类型检查冲到 16.7 倍提速。

第三是语言服务器的 LSP 改造。语言服务器从原来的私有协议换成了标准的 LSP(Language Server Protocol),打开大项目到第一个错误出现的时间从 17.5 秒降到 1.3 秒。这个体感比编译时间的改善更明显。

微软官方实测数据如下:

VS Code:125.7 秒 → 10.6 秒,11.9 倍提速
Sentry:139.8 秒 → 15.7 秒,8.9 倍
Bluesky:24.3 秒 → 2.8 秒,8.7 倍
Playwright:12.8 秒 → 1.47 秒,8.7 倍
Tldraw:11.2 秒 → 1.46 秒,7.7 倍

Slack 给出了一个更有感的数字:CI 类型检查从 7.5 分钟降到 1.25 分钟。团队合并等待时间直接少了 40%。

类型语义完全不变——但配置要改

TS 7 在语言层面和 TS 6 完全一致,类型检查结果不会因为升级而改变。但它继承并强化了 TS 6 引入的一系列默认值调整,有些配置直接变成了 hard error。

target: es5 不再支持。ES2015 成为新的最低标准。如果你的 tsconfig 里有 target: “es5″,升级后会直接报错。改成 target: “ES2015” 或更高版本就行。

AMD、UMD、SystemJS、None 这四种模块格式被移除了。现代项目基本都用 esnext 或交给 bundler 处理,所以大多数团队其实不受影响——但如果你的构建还在直接输出这些格式,需要先迁移到 esnext。

moduleResolution: node 和 node10 也被删了。TS 6 已经标记为废弃,TS 7 直接 hard error。换成 nodenext 或 bundler 即可。

baseUrl 不再支持 paths 绝对路径映射。如果你的 tsconfig 里有 paths 配合 baseUrl,需要改成相对路径或者交给 bundler 的 alias 功能处理。

esModuleInterop: false 和 allowSyntheticDefaultImports: false 不再允许设为 false。strict 现在是硬默认值,无法关闭。这两项对大多数项目反而是好事,不用再手动开。

还有一个值得注意的变化:Closure 风格的 JSDoc 类型注解(如 @enum、@class 在函数上、? 作为独立类型)不再被特殊识别。如果你的代码库里有大量 JSDoc 类型标注,升级后需要逐一检查兼容性。

升级路径:先到 6,再到 7

微软明确建议从 5.x 升级的团队先走到 TS 6,再从 TS 6 升级到 7。TS 6 引入了所有废弃警告和默认值调整,让迁移变成两步小跳,而不是一步大跳。npm 上有 @typescript/typescript6 包,可以在同一项目里并行安装 6.x 和 7.x,用于过渡期对比验证。

有一个重要限制:TS 7.0 暂时没有稳定的编译器 programmatic API。如果你依赖 ts-morph、直接调用 tsserver、或使用需要接入编译器内部接口的工具(typescript-eslint、某些框架的 type checker),需要等 TS 7.1。Volar(Vue 的语言服务器)、Svelte 的类型检查器、Astro 的类型检查也都暂时不能升级,7.1 预计 2026 年 10 月左右出来。

下一步:今晚可以做的一件事

如果你用的是纯应用代码(不是框架的 type checker),npm install -D typescript 现在默认装的就是 7.0。可以先在本地跑一下 npx tsc –noEmit,看有哪些配置报错——大多数项目的报错会是 target: es5 或 moduleResolution: node,这两个改起来很快。

CI 里的类型检查 job 可以改成双轨:TS 6 跑主流,TS 7 跑验证,等 7.1 工具链跟上了再合并。

评论区

0 条评论

登录后可评论。

阿柯·前端架构 65 阅读