Skip to content

WebStorm 稳定支持 TypeScript 7:Angular 与 React 编码辅助提速,无需迁移 ​

译注:本文翻译自 WebStorm 官方博客,作者 Piotr Tomiak,原文发布于 2026 年 9 月 8 日。原文链接见文末。

TypeScript 7 带来了全新的基于 Go 的语言引擎,从根本上改变了 IDE 与 TypeScript 的集成方式。WebStorm 2026.2 已提供对该引擎的稳定支持,覆盖 Angular 与 React 项目。

值得注意的是,这一支持不需要项目迁移。如果你的团队出于基础设施原因仍锁定在较旧的 TypeScript 版本,项目约束保持不变,改变的只是 WebStorm 中编码辅助的速度与质量。

底层变化:Go 引擎为何重要 ​

TypeScript 7 用 Go 编写的新引擎取代了原先基于 Node.js 的语言服务。结果是编译器更快,在提供同等或更好编码辅助的前提下完成更少的工作。

对 WebStorm 而言,这意味着需要重新思考 IDE 在语言服务层面与 TypeScript 的集成方式。团队没有依赖既有的插件层,而是为 Go 引擎构建了原生支持,使其能够直接驱动编码辅助。这一差异在大型代码库中最为明显——旧引擎的开销正是在这类场景下最为突出。

Angular:率先获得完整 TypeScript 7 支持 ​

在 WebStorm 2026.2.2 中,针对 Angular 项目的 TypeScript 7 支持已完全稳定。你可以在 WebStorm 偏好设置中切换到 Go 引擎,项目本身无需任何改动。

根据微软官方公布的数据,新编译器比基于 Node.js 的前代产品快至多 10 倍。JetBrains 团队在 Kibana 代码库上运行 TypeScript 7,观察到项目加载时间从约 12 秒降至 3 秒。Kibana 是现存最大的开源 TypeScript 代码库之一,这一结果具有参考意义,也可作为大型 Angular monorepo 的预期参照。

在 WebStorm 偏好设置中为 Angular 项目选择 TypeScript 7.0 即可获得性能提升。

这为何可行?Angular 编译器与 VS Code 的编码辅助目前都不支持 TypeScript 7.0。WebStorm 自带一个从 Angular 编译器移植到 Kotlin 的 Angular 模板转译器,这带来了很大的灵活性。对于基于 Node.js 的 TypeScript,团队开发了 Volar 插件以支持 TypeScript 编译器中的源码映射;对于基于 Go 的 TypeScript,则通过将 Volar 的部分功能移植到 Kotlin 并适配自身基础设施,实现了类似方案。

整体思路是:存在一个收集转译代码与映射关系的层,将 IDE 请求从原始源码坐标转换为生成代码坐标。TypeScript 编译器只看到生成代码,并接收坐标转换后的请求。这一方案使 WebStorm 能够转译 TypeScript 文件,并在内联 Angular 模板中提供编码辅助。TypeScript-Go 的 content-mappers 功能目前仅限于非 TypeScript 文件,且看起来不会支持 Angular 用例。

JetBrains 表示期待看到 Angular 编译器针对 TypeScript 7.0 的重新设计,但即便现在,Angular 项目已可在 WebStorm 中享受更好的性能。

React 与 Vue 更新 ​

如果你的 React 项目已在使用 TypeScript 7,WebStorm 已可直接支持:Go 引擎开箱即用。更新 WebStorm,在偏好设置中选择 TypeScript 7 即可。

Vue 方面,团队正在将 Vue 转译器移植到 Kotlin 与 Kolar(即将推出),并积极寻找支持 Vue 与 TypeScript 7 的最佳方案。需要评估的是:通过官方 content-mappers 方案实现,还是使用自研的 Kotlin 转译器与 Kolar。

后续计划 ​

React 的 TypeScript 7 支持已稳定并可用。Angular 方面,团队将继续完善集成,并关注 Angular 编译器如何演进以原生支持 TypeScript 7。如果在项目中遇到意外情况,官方欢迎开发者反馈——来自真实代码库的反馈将影响后续方向。

原文链接 ​

https://blog.jetbrains.com/webstorm/2026/09/typescript-7-in-webstorm-faster-coding-assistance-for-angular-and-react-no-migration-required/