我有很多 redux reducer,它们在发送到 store 之前传递给 combineReducers。在 js 中,我通常会执行以下操作并对其进行排序。请注意,这里的减速器是虚拟的。
const reducers = {
router: connectRouter(history),
...c,
...d,
...a,
}
export default combineReducers(
Object.keys(reducers)
.sort()
.reduce((acc, cur) => ({ ...acc, [cur]: reducers[cur] }), {})
);
但是在打字稿中,如果我尝试做同样的事情,我实际上会遇到很多错误。
export default combineReducers<RootState, RootAction>(
Object.keys(reducers)
.sort()
.reduce((acc, cur) => ({ ...acc, [cur]: reducers[cur] }), {})
);
错误是
TS2345:“{}”类型的参数不可分配给“ReducersMapObject<RootState, PayloadAction<"@user/setCurrentUser", ADUser> 类型的参数 | PayloadAction<"@profile/setProfile", Profile> | PayloadAction<"@client/setClients", ClientMap> | ... 81 更多... | 有效载荷动作<...>>'。类型“{}”缺少类型“ReducersMapObject<RootState, PayloadAction<"@user/setCurrentUser", ADUser> 中的以下属性 | PayloadAction<"@profile/setProfile", Profile> | PayloadAction<"@client/setClients", ClientMap> | ... 81 更多... | PayloadAction<...>>':currentUser、profile、clients、models 和其他 22 个。
请指教。