Javascript 类型中缺少类型{error}<;类型_A>;,但在类型中是必需的<;类型_B>;-重复特定问题

Javascript 类型中缺少类型{error}<;类型_A>;,但在类型中是必需的<;类型_B>;-重复特定问题,javascript,reactjs,typescript,redux,redux-reducers,Javascript,Reactjs,Typescript,Redux,Redux Reducers,我有一个小问题,键入我的Redux Reducer。我知道这个问题已经得到了普遍的回答,但我发现缺乏解决办法,我认为这些办法比其他任何办法都更有效 问题: 我有一个Redux减速机。在它内部,有3个功能管理加载状态、成功状态和失败状态,在过程中提供必要的数据或错误状态。现在TS也加入了游戏。基本上我得到了这个错误: TS2418: Type of computed property's value is '(state: ImmutableObjectMixin<IState>, {

我有一个小问题,键入我的Redux Reducer。我知道这个问题已经得到了普遍的回答,但我发现缺乏解决办法,我认为这些办法比其他任何办法都更有效

问题: 我有一个Redux减速机。在它内部,有3个功能管理加载状态、成功状态和失败状态,在过程中提供必要的数据或错误状态。现在TS也加入了游戏。基本上我得到了这个错误:

TS2418: Type of computed property's value is
'(state: ImmutableObjectMixin<IState>, { error }: ActionFailure<Type.LIST_ITEMS_FAILURE, HttpError>) => ImmutableObjectMixin<...>',
which is not assignable to type '(state: ImmutableObjectMixin<IState>, action: ActionWithPayload<Type.LIST_ITEMS_SUCCESS, IItems[]>, { error }: ActionFailure<Type.LIST_ITEMS_FAILURE, HttpError>) => ImmutableObjectMixin<...>'.

Types of parameters '__1' and 'action' are incompatible.
Property 'error' is missing in type 'ActionWithPayload<Type.ITEMS_SUCCESS, IItems[]>' but required in type 'ActionFailure<Type.LIST_ITEMS_FAILURE, HttpError>'.

如果您能帮我打字,我们将不胜感激。我想问题可能就在钥匙上。因为我们正在重组
错误
,但我可能错了。谢谢你。

我没有自己键入它,而是使用了
redux-saint
中的处理程序通用界面

以下是接口本身:

  export interface Handlers<S> {
    [type: string]: (state: S, action: Action) => S;
  }
导出接口处理程序{
[类型:字符串]:(状态:S,操作:action)=>S;
}
它基本上与我输入的内容完全相同,但它与TS错误重叠。但不知道为什么。如果你有答案的话,知道这一点会很有用

以下是新代码:

const ACTION_HANDLERS:Handlers<ImmutableObjectMixin<IState>> = {
  [Type.LIST_ITEMS_ATTEMPT]: onListFetching,
  [Type.LIST_ITEMS_SUCCESS]: onListFetchingSuccess,
  [Type.LIST_ITEMS_FAILURE]: onListFetchingFailure
};
const ACTION\u处理程序:处理程序={
[Type.LIST\u ITEMS\u trunt]:onListFetching,
[Type.LIST\u ITEMS\u SUCCESS]:仅ListFetchingSuccess,
[Type.LIST\u ITEMS\u FAILURE]:onListFetchingFailure
};

一切都像一个字符,。但是如果可以进一步改进,请让我知道。

我提供了3个参数。以完全相同的顺序。我想我不明白。。对不起,事实上,我找到了一个办法来处理这件事。我使用了
redux saint
中的
处理程序
通用接口。下面是签名:
导出接口处理程序{[type:string]:(状态:S,操作:action)=>S;}
  export interface Handlers<S> {
    [type: string]: (state: S, action: Action) => S;
  }
const ACTION_HANDLERS:Handlers<ImmutableObjectMixin<IState>> = {
  [Type.LIST_ITEMS_ATTEMPT]: onListFetching,
  [Type.LIST_ITEMS_SUCCESS]: onListFetchingSuccess,
  [Type.LIST_ITEMS_FAILURE]: onListFetchingFailure
};