TypeScript 原生化:微软将编译器移植到 Go,实现 ~10× 的速度提升

TypeScriptDevOps工具

关键更新

微软的 TypeScript 团队公开发布了一个用 Go 实现的 TypeScript 编译器和语言服务的原生移植(项目代号“Corsa”)。公告中的基准测试显示,在真实代码库上,命令行类型检查速度大约提高了 10 倍,与当前基于 JS 的编译器相比,编辑器项目加载时间改善了 ~8 倍。团队正在发布预览版,并制定了一个路线图,一旦功能平衡和稳定性达到,将以 TypeScript 7.0 发布原生实现;与此同时,现有的 JS 代码库将继续作为 6.x 版本。

重要性

这不仅仅是一个表面的性能提升——它改变了大型 TypeScript 代码库和工具的实际可行性。预计 CI 类型检查将显著加快,编辑器和语言服务器的内存使用将降低,单体仓库的重构和跨项目分析将更加迅速,以前在规模上遇到困难的项目将受益。操作上,团队应考虑两个过渡因素:首先,原生编译器将作为二进制文件/LSP 分发,这会影响开发者环境和 CI 镜像(您可能需要安装或捆绑不同的 tsc 二进制文件,而不是仅依赖 Node/npm)。其次,TypeScript 团队打算在原生版本达到平衡之前,继续维护基于 JS 的 6.x 版本,因此迁移可以是渐进的——但您应该在非关键构建上测试原生预览,以尽早发现任何行为差异(类型解析边缘情况、自定义转换器或假设 Node 运行时的工具)。对于立即的实际步骤:在一个代表性的服务或分支上尝试预览版,以测量 CI/首次按键时间的提升,评估工具兼容性(编辑器扩展、语言服务器集成),并准备 CI/容器镜像,以便在生产中迁移时包含原生二进制文件。

来源

继续阅读