微软宣布启动TypeScript编译器与相关开发工具原生移植计划,目的是大幅改善编译与语言服务的执行性能,根据官方提供的初步测试数据,未来采用原生实例的TypeScript,速度有望提升至10倍以上,内存用量也可大幅降低,解决大型项目因程序代码规模扩张而出现的性能瓶颈,并促使即时互动性高的人工智能辅助开发工具更加成熟。

TypeScript原生版本预计于2025年中发布支持命令行类型检查的预览版,并在年底前完成包含语言服务的完整版本。

TypeScript已是不少企业前后端开发的主流选择,但随着项目规模越来越大,现有以JavaScript编写的TypeScript编译器,在数十万行甚至百万行程序代码规模下,类型检查、错误分析及项目加载速度都出现明显延迟。此次微软团队由TypeScript项目主要创造者Anders Hejlsberg主导,要将原本使用JavaScript实例的编译器逻辑改写成原生程序代码,以大幅提高编译性能、降低内存消耗。

根据微软目前公开的初步测试数据,以开源项目VS Code为例,该项目规模约为150万行程序代码,现行TypeScript编译器执行完整类型检查需要77.8秒,改采原生实例后仅需7.5秒。此外,另一个著名项目Playwright的类型检查时间也从原本的11.1秒缩短至1.1秒。其他诸如TypeORM、date-fns、tRPC与rxjs等不同规模的项目,也都有9倍至13倍的性能提升。

图片来源/微软

微软特别指出,新版TypeScript的语言服务将可大幅改善开发体验,例如VS Code加载其项目的时间将从9.6秒缩短到1.2秒,而且自动完成、快速提示、跳转定义、寻找所有参照等常用功能的回应速度也将明显提升。此外,内存用量预期可降低一半左右,对于开发环境资源较有限的用户更为友善。

从技术架构层面来看,此次移植不仅涉及编译器程序代码重写,微软也将全面采用语言服务器协议(LSP),该标准化协议有助于TypeScript具备更高的一致性与扩展性,代表第三方工具开发商或内部团队,在集成或扩展TypeScript语言服务时将更方便。

微软将继续维护现行以JavaScript实例的TypeScript编译器,并在接下来的TypeScript 6.x版本中进行部分必要的兼容性调整,替之后的原生版本铺路,而当原生实例完成所有功能并完成与现行版的高度兼容时,将正式以TypeScript 7.0版本进行发布。