谷歌在 Angular 社区推出 v22 版本,带来多项重要更新。该版本引入了 API 稳定性优化、模板易用性改进以及面向 AI 编码智能体的新工具。此外,Signal Forms、Angular Aria 和异步响应式 API 均已进入生产就绪状态。v22 还改变了依赖注入策略,并引入了新的 @Service() 装饰器和 injectAsync 功能。模板方面,新增了 spread 和 rest 语法,多情况匹配,@switch 穷举 never 检查,以及内联箭头函数和元素标签内注释。AI 方面,WebMCP 支持被推出,允许浏览器内的智能体使用。
--91likeyou---
影响范围最广的变更是变更检测。OnPush 现在已经成为组件的默认策略,而之前的默认策略已经重命名为 Eager。
依赖注入也取得了新的进展。一个新的 @Service() 装饰器取代了全局单例常用的 @Injectable({providedIn: ‘root’}) 模式,而 injectAsync 则允许服务进行懒加载和代码拆分,并可以选择在浏览器空闲时进行预取。
模板新增了 spread 和 rest 语法、多情况匹配以及 @switch 穷举 never 检查,还支持内联箭头函数以及元素标签内注释。针对模板的错误边界语法 @boundary,其开发者预览版预计将于 2026 年第三季度发布。在 AI 方面,Angular 推出了实验性的 WebMCP 支持。该功能将应用程序和 Signal Forms 工具开放给浏览器内的智能体,同时还推出了 Angular Agent Skills 以及稳定版的 MCP 开发服务器工具。
Hacker News 上的一则帖子获得了 135 个赞和 79 条评论。有位开发者指出,尽管“生态系统还有些粗糙”,但现代 Angular“使用起来非常令人愉快”;还有一位开发者对 Signal Forms 表达了兴奋之情:
我对此真的非常期待。自从 Signal Forms 和资源还是实验性功能时,我就迫不及待地想用它们了。一旦踏上了 Signal 的快车,我就再也回不去了,而不得不使用 RxJS 处理表单也成了一个巨大的痛点。
人们的批评主要集中在工具链上,有评论者认为, Angular 应该彻底放弃其编译器:
Angular 应该彻底放弃其编译器——它在很多方面都严重阻碍了开发,尤其是在当前 AI 代码生成盛行的时代,还必须特意选择可以集成 Angular 工具链的工具,而不是直接使用纯 TypeScript 和 HTML。
还有人指出,最大的问题在于使用 Vite 这样的自定义工具链非常困难。
要进行迁移的话,可以通过运行 ng update @angular/cli@^22 @angular/core@^22 ,具体细节请参阅交互式更新指南。Angular v22 要求使用 TypeScript 6 并且已停止支持 Node 20。 对于未设置策略的组件,Schematics 会自动执行以下操作:添加 ChangeDetectionStrategy;在尚未启用 strictTemplates 的地方添加 strictTemplates: false;移除 withFetch(),因为 HTTP 客户端现在会默认使用 Fetch。有两项内容需要手动处理:paramsInheritanceStrategy 现在默认设置为 always,而且未提供相应的迁移方案;此外,Webpack 支持(包括 @angular-devkit/build-angular 和 @ngtools/webpack)也已被弃用。
Angular 是一个由谷歌维护的开源应用程序框架,基于 TypeScript 构建,每六个月发布一次主版本。官方发布活动于 2026 年 6 月 5 日首次举行。
:
🔥 热词:#Angular · #v22 · #Signal · #API · #谷歌发布 · #带来稳定的 · #Forms、默认启用的 · #OnPush