TypeScript 7 升级为何搞崩了 ESLint、ts-jest 和 ts-morph
来源:dev.to — 2026-07-31
📋 概述
TypeScript 7 的 tsgo 是 Go 语言逐行移植版(并非重写),其编程 API 要到 7.1 版本才稳定。依赖该 API 的工具——typescript-eslint 直接拒绝安装(ERESOLVE 错误)、ts-jest 停止转换测试文件、ts-morph 深度崩溃。解决方案是将 typescript 保持在 6.x 用于工具链,同时安装 @typescript/native-preview 用于 CI 的快速类型检查。
🔑 核心要点
- 编程 API 不兼容:typescript-eslint、ts-jest、ts-morph 等工具依赖 TypeScript 编程 API,7.0 的 API 尚未稳定
- ERESOLVE 错误:typescript-eslint 的 peer 范围仅允许 <6.1.0,npm 直接拒绝与 typescript@7 共存
- 双编译器方案:typescript@6.x 用于工具链(ESLint + Jest),@typescript/native-preview 用于 tsgo --noEmit 快速检查
- Project Corsa:TypeScript 编译器从 JavaScript 逐行移植到 Go,保持类型检查行为完全一致
- 7.1 修复时间线:编程 API 在 7.1 中才会稳定,届时工具链将逐步适配
💡 金句
Don't replace typescript in your dependencies with the 7.x line if you use typescript-eslint, ts-jest, ts-morph.
👍 0
👎 0
← 返回 Dev.to 首页