今年 3 月, 微软曾宣布对 TypeScript 编译器及工具链进行 Go 语言重构。今天,微软正式宣布 TypeScript Native 预览版(TypeScript Native Preview)面向开发者广泛开放。 根据官方博客介绍,新版本在多数真实世界项目中带来了 10 倍以上的编译性能提升。
以下是 TypeScript Native 预览版的介绍和获取方式,具体如下:
TypeScript Native 的诞生与性能飞跃
这一版本被内部称为 “Project Corsa”,与当前的稳定版代码库 “Strada”(TypeScript 5.8)形成对比。Corsa 使用 Go 语言重写了核心模块,并通过共享内存并发执行实现显著加速。例如,在大型项目(如 Sentry)中,编译时间从超过 1 分钟缩短至不到 7 秒,速度提升达十倍以上。
获取 TypeScript Native 预览版
开发者可通过以下两种方式体验 TypeScript Native:
通过 npm 安装命令行工具
使用下列命令将其安装到项目中:
npm install -D @typescript/native-preview
该包包含 tsgo 命令行工具,类似于当前的 tsc。运行编译命令如下:
npx tsgo –project ./src/tsconfig.json
目前 tsgo 仍为独立工具,未来将被重命名为 tsc 并整合进官方 typescript 包。
在 VS Code 中启用编辑器支持
开发者可通过 VS Code 扩展市场安装全新的 “TypeScript (Native Preview)” 扩展 Visual Studio Marketplace。启用方法包括:
在命令面板中执行:TypeScript Native Preview: Enable (Experimental)
在设置 UI 中开启 TypeScript > Experimental: Use Tsgo
或通过 JSON 添加配置项:
“typescript.experimental.useTsgo”: true
当前功能支持与开发进展
TypeScript Native 预览版的多个关键模块已经就绪:
更全面的类型检查器支持
JSX 与 JavaScript + JSDoc 类型检查已集成。与 JavaScript 支持相关的实现已被重写,以更好适配现代 JavaScript 开发模式。
编辑器功能的语言服务器进展
团队在基于 LSP 的语言服务中已实现基础功能,包括诊断、跳转定义、悬停提示和代码补全等,未来将支持查找引用、重命名和签名帮助等增强功能。
跨语言 API 通信与同步支持
为确保 TypeScript API 用户的体验一致,团队提供了通过 IPC 与本地进程通信的机制,并构建了 libsyncrpc 库以支持 Node.js 中的同步通信方式。
当前限制与差异说明
尽管 TypeScript Native 已具备广泛可用性,但仍存在以下差异:
- 不支持 –build、–declaration 等命令行参数
- JSX 只保留源码形式,暂不支持转换
- 编辑器功能如自动导入、重命名等仍在开发中
- 模块解析策略与 TS6.0 后的变化一致,建议使用 nodenext 或 bundler 模式以规避模块解析错误
如遇兼容性问题,建议开发者暂时切换至 Strada 并向官方反馈问题 GitHub issues。
未来展望
TypeScript 团队计划在 2025 年晚些时候发布包含完整功能的 TypeScript 7 正式版,覆盖构建模式(–build)、声明生成和完整语言服务功能。在此之前,Corsa 版本将以 nightly 构建形式持续发布,鼓励开发者持续试用并提供反馈。
via TypeScript Team