谷歌发布 Angular v22,带来稳定的 Signal Forms、默认启用的 OnPush 以及实验性的 WebMCP
Angular(谷歌 TypeScript 优先的 Web 应用程序框架)发布 v22 版本,其中包含 API 稳定性优化、模板易用性改进以及面向 AI 编码智能体的新工具。
此次发布将三个长期处于开发状态的项目推向了生产就绪状态:Signal Forms、Angular Aria 以及异步响应式 API。Signal Forms 项目将响应式表单的强类型保证与模板驱动表单的易用性融合到了一个基于信号的声明式 API 中。该项目现在已经提供了完整的文档,并支持 Angular Material 和 Angular Aria。
除了表单之外,resource、rxResource 和 httpResource 均已经稳定,为团队提供了一种受支持的方式,让他们可以将异步数据建模为信号,并新增了针对依赖请求的 chain() 支持以及用于服务器端渲染的资源缓存。
影响范围最广的变更是变更检测。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 日首次举行。
原文链接:https://www.infoq.com/news/2026/08/angular-v22-released/
Aitishiku.com