TypeScript 原生预览(编译器速度提升 10 倍)现已广泛可用

TypeScript工具性能

关键更新

TypeScript 团队已发布原生 TypeScript 预览的广泛可用性(Corsa 项目)。一个原生编译的编译器(以 @typescript/native-preview 分发,执行文件名为 tsgo)和一个 VS Code 的 "TypeScript (Native Preview)" 扩展可供测试。原生移植在大型真实世界代码库中显示出一致的约 10 倍的速度提升,适用于类型检查,并带来了基于 LSP 的语言服务和一个新的 API 接口(包含一个用于同步 IPC 场景的原生 Node 模块 libsyncrpc)。这些预览旨在成为 TypeScript 7,但目前功能尚不完整(缺少一些输出和编辑器功能)。

重要性

  • 现实世界开发者影响:在大型单体代码库中,类型检查时间从几分钟降至几秒(博客展示了在一个大型 JSX 代码库中从 ~72 秒降至 ~6–7 秒)。这直接改善了本地反馈循环、CI 作业时长和使用重型 TypeScript 的团队的开发者生产力。
  • 实际注意事项:当前原生预览省略了几个命令行和编辑器功能(例如,一些与输出相关的标志、--build 工作流、自动导入、查找所有引用和重命名仍在待定中)。由于团队在对未来 TS6/TS7 的弃用进行对齐,也存在一些解析和降级目标相关的故意兼容性差异。
  • 如何安全评估:在非关键分支中尝试预览,并测量类型检查和 CI 时间。使用 npm 预览包运行 tsgo 进行 --noEmit 检查,如果想评估编辑器响应性,请安装 VS Code 预览扩展(该扩展在实验阶段时必须显式启用)。如果您依赖于当前缺失的输出或构建功能,请不要将生产构建管道切换到预览——而是使用它来验证速度并尽早发现任何类型检查的差异。
  • 工具和迁移影响:预计工具作者(代码检查工具、打包工具、基于 tsserver 的集成更新)将逐步采用 Corsa 的 API 或与之对接;拥有大型代码库的团队应立即开始测试,提供反馈,并在原生编译器成为默认值时规划渐进式迁移路径(团队计划每晚提供预览,并最终将其重命名为主 TypeScript 包)。

来源

继续阅读