NgRx v5.2 MetaReducer类型不匹配问题咨询
解决NgRx v5.2 Store初始化时的TS2345类型错误
嘿,这个小坑我之前帮人排查过,一眼就看出问题所在了!
问题根源
你遇到的TS2345类型错误,本质是配置参数名拼写错误:NgRx v5.2的StoreConfig接口里,用来配置元reducer的属性是复数形式的metaReducers,但你写成了单数的metaReducer。TypeScript严格的类型检查会直接判定这个属性不属于StoreConfig类型,所以抛出了错误。
修复方案
只需要把配置对象里的属性名从单数改成复数就行,给你对比下代码:
错误的写法
StoreModule.forRoot(reducers, { metaReducer: metaReducersArray })
正确的写法
StoreModule.forRoot(reducers, { metaReducers: metaReducersArray })
额外提醒
在NgRx v5.x版本里,metaReducers接收的就是你现在传入的MetaReducer<State, Action>[]数组类型,所以数组本身的格式是完全没问题的,只是属性名的单复数搞错了而已~
内容的提问来源于stack exchange,提问作者Zorlac
相关产品推荐
相关产品推荐

