Redux动态模块:类型“ AnyAction”不可分配给类型“ Action”

时间:2020-05-16 12:24:55

标签: typescript redux redux-dynamic-modules

我正在应用程序中实现redux-dynamic-modules,它不是应用程序中的第一个模块,但是在尝试创建此模块时出现奇怪的错误:

export const reduxProfile = () => {
  return {
    id: 'profile',
    reducerMap: {
      profile: reducer
    },
    sagas: [profileSagas],
    retained: true
  }
}
          Type 'Reducer<ProfileState, Action>' is not assignable to type 'Reducer<any, AnyAction>'.
            Types of parameters 'action' and 'action' are incompatible.
              Type 'AnyAction' is not assignable to type 'Action'.
                Type 'AnyAction' is not assignable to type 'SetPriceAction'.

这是我的SetPriceAction,看起来不错:

export interface SetPriceAction extends AnyAction {
  payload: Result;
  type: ActionTypes.SET_PRICE;
}
...
export type Action =
  | ...
  | SetPriceAction;

在另一个模块中,形状几乎相同,并且在那里一切正常。 有人可以帮忙解决这里出现的问题吗?

1 个答案:

答案 0 :(得分:1)

快速绕过是将您的有效负载设置为可选。

export interface SetPriceAction extends AnyAction {
  payload?: Result;
  type: ActionTypes.SET_PRICE;
}

但我正在积极寻找需要定义有效载荷的长期解决方案。如果我在此事上取得任何进展,我会通知你