为什么升级 TypeScript 7 后 ESLint、ts-jest、ts-morph 全线崩掉
来源:dev.to — 2026-07-15 — 9 min
📋 概述
安装 TypeScript 7 后构建崩溃、ESLint 报 cryptic 的 TypeError、ts-jest 无法转换、CI 无缘无故变红——作者指出这并非你配置错误。TypeScript 7 发布了 tsgo,是编译器真正的 Go 移植(项目代号 Corsa),在保留一致类型检查行为的同时因多线程获得约 10 倍构建提速。但问题在于:生态工具并不直接对话类型检查器,而是对话程序化 API,而该 API 尚不稳定,要到 7.1 才就绪。作者给出 10 秒版建议:若使用 typescript-eslint、ts-jest、ts-morph 等做程序化类型检查的工具,切勿把依赖里的 typescript 换成 7.x,应将其固定在 6.x,同时装 @typescript/native-preview 用于 CI 或手动 tsgo --noEmit 的快速类型检查——两个编译器各司其职。
🔑 核心要点
- TypeScript 7 的 tsgo 是编译器到 Go 的真正移植(项目 Corsa),非从零重写,靠多线程实现约 10 倍提速。
- 生态工具对话的是程序化 API 而非类型检查器,该 API 到 7.1 才稳定,因此当前会大面积报错。
- 10 秒方案:使用 typescript-eslint / ts-jest / ts-morph 的项目把 typescript 固定在 6.x。
- 同时安装 @typescript/native-preview,专用于 CI 或手动 tsgo --noEmit 的快速类型检查。
- 两个编译器并行共存、各司其职,是过渡期的正确姿势。
💡 金句
TypeScript 7 是移植而非重写——保留行为令人惊艳,但新的 API 表面还没准备好。
👍 0
👎 0
← 返回 dev.to 首页