微软今天出人意料地宣布了一项新变化,将从根本上改善 TypeScript 的性能。微软正在用 Go 语言开发 TypeScript 编译器和工具的原生移植。这个原生移植项目的代号为 “Corsa”。
根据开发者的反馈,微软发现 TypeScript 无法扩展到大型代码库。开发人员面临编辑器启动时间慢、源代码视图不完整等问题。微软声称,新的原生 Go 实现将大幅改善编辑器的启动速度,将构建时间缩短多达 10 倍,并显著降低内存使用率。
开发人员可以期待以下性能改进:
Codebase | Size (LOC) | Current | Native | Speedup |
VS Code | 1,505,000 | 77.8s | 7.5s | 10.4x |
Playwright | 356,000 | 11.1s | 1.1s | 10.1x |
TypeORM | 270,000 | 17.5s | 1.3s | 13.5x |
date-fns | 104,000 | 6.5s | 0.7s | 9.5x |
tRPC (server + client) | 18,000 | 5.5s | 0.6s | 9.1x |
rxjs (observable) | 2,100 | 1.1s | 0.1s | 11.0x |
微软预计,到 2025 年年中,这种本地移植将与能够进行命令行类型检查的 tsc 一起进行预览。到今年年底,将发布功能完备的项目构建解决方案和语言服务。感兴趣的开发人员现在可以从微软的新工作库中构建和运行 Go 代码。
微软最近发布了 TypeScript 5.8,TypeScript 5.9 也即将发布。开发者可以期待TypeScript 6.0会有一些弃用和破坏性修改,以支持即将发布的基于Go的版本。今年晚些时候,微软将发布新的原生 Go 实现,即 TypeScript 7.0。
当前基于 JS 的 TypeScript 代码库将继续开发 6.x 系列,直到 TypeScript 7+ 达到足够的成熟度和采用率,因为有些项目可能依赖于某些 API 功能、传统配置或其他 TypeScript 7+ 不支持的东西。