TypeScript 7 进展 – 2025年12月
Source: Hacker News
December 2nd, 2025
今年早些时候,TypeScript 团队宣布我们已经将编译器和语言服务移植到原生代码,以利用更好的原始性能、内存使用和并行性。这项工作(代号 “Project Corsa”,即将更名为 “TypeScript 7.0”)是一项重要的工程,过去几个月我们取得了巨大进展。以下是最新的更新。
编辑器支持与语言服务
TypeScript 的原生预览现在已经快速、稳定且易于使用——包括在你的编辑器中。语言服务(编辑器功能背后的引擎)是原生移植工作的核心部分,可通过 Visual Studio Code Marketplace 进行试用,且每日更新。
现在可用的关键编辑器功能:
- 代码补全(包括自动导入)
- 转到定义 / 转到类型定义 / 转到实现
- 查找所有引用
- 重命名
- 快速信息 / 悬停提示
- 参数签名帮助
- 格式化
- 选择范围
- 代码镜头(Code Lens)
- 调用层次结构
- 文档符号
- 缺少导入的快速修复
这些操作在任何 TypeScript 或 JavaScript 代码库中都可使用,包括使用项目引用的项目。语言服务已为可靠性和共享内存并行性重新架构,提供更快的加载时间、更低的内存占用以及更流畅的编辑体验。如有需要,扩展允许你在 VS Code 内置的 TypeScript 体验和全新的原生预览之间切换。
编译器
原生移植的编译器也在快速推进。每晚的预览构建发布在 npm 包 @typescript/native-preview 下。使用以下命令安装:
# local dev dependency
npm install -D @typescript/native-preview
# global install
npm install -g @typescript/native-preview
该包提供一个 tsgo 命令,功能与 tsc 相同;两者可以并行使用。
类型检查等价性
在约 20 000 条编译器测试用例中,只有 74 条在 TypeScript 6.0 与原生预览之间存在差异(大多是未完成的工作或有意的更改)。这意味着你可以放心地使用 TypeScript 7 来对项目进行类型检查。
构建特性
增量构建、项目引用以及 --build 模式已全部移植,并因原生代码性能和共享内存并行性而显著加速。
# Running tsc in --build mode...
tsc -b some.tsconfig.json --extendedDiagnostics
# Running the new compiler in --build mode...
tsgo -b some.tsconfig.json --extendedDiagnostics
即使不使用 --incremental,完整构建相较于 6.0 编译器也常常实现接近 10 倍的提速。
示例速度对比
| 项目 | tsc (6.0) | tsgo (7.0) | Δ(秒) | 加速比 |
|---|---|---|---|---|
| sentry | 133.08 s | 16.25 s | 116.84 s | 8.19× |
| vscode | 89.11 s | 8.74 s | 80.37 s | 10.2× |
| typeorm | 15.80 s | 1.06 s | 14.20 s | 9.88× |
| playwright | 9.30 s | 1.24 s | 8.07 s | 7.51× |
与 TypeScript 5.9 的预期差异
虽然许多差距已经弥合,但仍有一些注意事项。部分是临时性问题,将在最终 7.0 发行前解决;另一些则源于为提升默认 TypeScript 体验而做出的长期决策。
弃用兼容性
TypeScript 7.0 将移除在 6.0 中已标记为即将弃用的行为和标志。请参阅 6.0 版即将弃用的列表(issue tracker)。值得注意的更改包括: