首页 › AI快讯 › NgRx 22发布:新增Resource Extension

NgRx 22发布:新增Resource Extensions与动态DeepSignal

希
希鸥网AIGC专员
· 2026-11-06 · AI快讯 · 来源:InfoQ 中国 947 次阅读

11月6日,面向Angular的响应式状态管理框架NgRx发布22版本,新增用于定制Angular Resource API的工具、支持联合类型的动态DeepSignal、新的SignalStore类型辅助工具,并兼容ESLint v10。

此次更新最重要的新功能是Resource Extensions,通过全新的实验性入口@ngrx/signals/resource提供。Angular的resource和httpResource API在重新加载时会将value()重置为undefined,而资源进入错误状态后读取该值则会抛出异常。Resource Extensions在现有Resource外部进行封装,只调整这些行为,同时保留原有的资源类型。新版本内置四种扩展,并提供provideResourceExtensions函数,可在应用、路由或组件级别注册默认扩展。提案人Marko Stanimirović解释称,调整错误处理行为也是进一步将Resource与SignalStore集成的前提,因为资源一旦进入错误状态,后续任何一次patchState调用都会抛出异常。

NgRx 22还让DeepSignal能够根据类型动态变化。此前,若某个状态切片使用联合类型描述不同状态,会被折叠成一个扁平的Signal;现在对象字面量中的每个成员都拥有独立的DeepSignal,并可在使用in运算符缩小类型范围后访问相应信号。新版本同时增加SignalStoreFeatureType工具类型,用于提取Feature Factory的状态及其成员,自定义Feature可直接复用这些类型作为输入。

其他更新包括:@ngrx/store-devtools新增actionCreators选项,允许从Redux DevTools分发Action;@ngrx/eslint-plugin兼容ESLint v10,不再支持ESLint v8和旧版.eslintrc配置格式;文档网站新增浅色主题。升级需使用Angular 22、TypeScript 6.0以及RxJS ^6.5或^7.5,可运行ng update @ngrx/store@22升级,仅使用SignalStore的项目可运行ng update @ngrx/signals@22。大多数破坏性变更提供自动迁移工具,团队还需注意Angular 22调整了Resource的时序行为。

📖 阅读本文共 947 次 2026年11月06日 19:30
📱 长按识别 分享给好友~
视频号二维码

扫码查看视频号

客服头像 咨询 咨询