首页 文章

Flow,可选泛型是给定类型但未定义错误中缺少get属性

提问于
浏览
0

TAction 这样的类型

export type TAction<TPayload = any> = {
  +type: string,
  payload?: TPayload
};

在这里我给它 TPayload

(
  state: TSettings,
  action: TAction<{ key: any, value: any }>
) => ({
    ...state,
    [action.payload.key]: action.payload.value
}),

然而,流程给我错误

Cannot get action.payload.key because property key is missing in undefined [1].

1 回答

  • 0

    您已将 payload 标记为maybe type(问号),因此可能是 nullundefined . 或

    删除问号:

    export type TAction<TPayload = any> = {
      +type: string,
      payload: TPayload
    };
    

    或添加 payload 定义的检查,即:

    (
      state: TSettings,
      action: TAction<{ key: any, value: any }>
    ) => action.payload ? ({
        ...state,
        [action.payload.key]: action.payload.value
    }) : {...state},
    

相关问题