使用Redux模式构建Angular应用导入NgRx库遇TS错误求助
解决Angular 6集成NgRx Store时的TypeScript错误
嘿,我一眼就看出问题所在了——这是典型的版本不兼容导致的!咱们一步步拆解:
问题根源
你当前的项目是Angular 6,TypeScript版本是2.9.2,但你安装的@ngrx/store是8.6.0版本:
- NgRx 8.x要求Angular版本至少是8.x,而且依赖TypeScript 3.4+的特性
- TypeScript 2.9.2根本不支持
unknown类型(这个特性是TS 3.0才新增的),同时对rest参数的语法支持也达不到NgRx 8的要求,所以才会抛出这些错误
两种可行的解决方案
方案1:降级NgRx到适配Angular 6的版本
Angular 6对应的稳定NgRx版本是6.x,执行以下命令调整:
# 先卸载当前高版本的NgRx npm uninstall @ngrx/store # 安装和Angular 6兼容的版本 npm install @ngrx/store@6.1.0 --save
这个版本完全匹配你的Angular 6和TypeScript 2.9.2,安装后这些类型错误应该直接消失。
方案2:升级Angular生态到适配NgRx 8的版本
如果你想保留NgRx 8的新特性,就得把整个项目升级到Angular 8:
- 先升级Angular CLI:
npm install @angular/cli@8.3.29 --save-dev
- 升级Angular核心依赖:
ng update @angular/core@8 @angular/cli@8
- 升级TypeScript到兼容版本:
npm install typescript@3.4.5 --save-dev
- 同步升级RxJS(Angular 8建议用RxJS 6.5.x):
npm install rxjs@6.5.5 --save
最后验证
完成版本调整后,执行npm install重新拉取所有依赖,再运行ng serve试试——那些恼人的TypeScript错误应该就不见了!
内容的提问来源于stack exchange,提问作者Ahlem Zouaghi
相关产品推荐
相关产品推荐

