微软发布 TypeScript 7.1 Beta,这是 7 月落地的 Go 原生编译器之后的第一次更新。两件事最关键:恢复了 7.0 中去掉的编译器 API,新增 content mappers(内容映射器)。
API 被拆成多个入口
编译器现在分成 typescript/sync、typescript/async、typescript/fs、typescript/ast 等入口,解决的是工具作者无法把编译器嵌进自己项目的问题。7.0 只有 CLI,做类型化 lint 规则、codemod、文档生成器的团队等于被断了路。
内容映射器解决什么
它让 TypeScript 能处理 .vue 和 .svelte 这类非标准文件类型,把虚拟文件里的位置映射回源文件。
实测数字
Vue Language Tools 维护者已在内容映射器之上发布 v4 alpha,取代独立的 vue-tsc。Directus 后台的类型检查从 14.19 秒降到 3.10 秒,相对 vue-tsc 3 约 4.6 倍。MUI 文档站从 22.2 秒降到 11.9 秒,内存大致减半。第三方对 NestJS 的测试里,35.3 万行的检查在 beta 上 2.76 秒,7.0 是 4.95 秒,旧编译器 12.42 秒。
已知问题
保存映射器监听的配置文件后,类型可能保持陈旧,需要重启语言服务器。这个 issue 还开着。
怎么上
先在 CI 里跑不产出物的类型检查,编辑器继续用旧版;等框架工具链自己宣布支持再迁。别让 beta 去产出你的生产构建产物。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。