You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 9项目使用Ngrx StoreModule.forRoot触发TS编译错误求助

问题根因

这个编译错误和你编写的业务代码、自定义reducer的配置没有任何关系,核心原因是当前安装的@ngrx/store版本与Angular 9项目自带的TypeScript版本语法支持不匹配。

报错指向的类型文件中,使用了带参数命名的展开元组语法(...args: [...creators: Creators, reducer: OnReducer<State, Creators>]),这类语法是TypeScript 4.0及以上版本才支持的特性,而Angular 9内置配套的TypeScript版本为3.8.x,无法识别这类新语法,因此在解析ngrx的类型声明文件时直接抛出TS1005的逗号缺失编译错误。

你修改reducer配置传入StoreModule.forRoot的尝试没有生效是完全正常的——报错发生在编译第三方依赖的类型定义阶段,而非你的业务代码编译阶段,哪怕传入空的reducer配置,只要TS编译器加载了高版本ngrx的不兼容类型文件,就会触发该错误。

可落地的解决步骤
  • 卸载当前安装的不兼容高版本@ngrx依赖,执行命令:npm uninstall @ngrx/store
  • 安装与Angular 9完全适配的ngrx版本,Angular 9对应的稳定兼容版本为9.2.1,执行命令:npm install @ngrx/store@9.2.1
  • 若项目中还安装了@ngrx/effects、@ngrx/entity等其他ngrx生态包,需全部对齐到9.2.1版本,避免不同版本ngrx类型文件的语法兼容问题
  • 安装完成后可通过tsc --version检查本地TypeScript版本,确保为3.8.x版本(和Angular 9配套的官方稳定版本为3.8.3),如果版本不符可执行npm install typescript@3.8.3 --save-dev修正

内容的提问来源于stack exchange,提问作者Richard Virag Andrade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 20:57:03