Redux 流无法正确推断类型

Redux 流无法正确推断类型,redux,flowtype,Redux,Flowtype,我在redux中的Action creator中定义了多个子类型: 操作创建者: export type Action = { type: "SELECT", index: number } | { type: "OTHER" }; 减速器: module.exports = (state: string = "", action: Action): string => { switch (action.type) { case "SELECT":

我在redux中的Action creator中定义了多个子类型:

操作创建者:

export type Action = { type: "SELECT", index: number } | { type: "OTHER" };
减速器:

module.exports = (state: string = "", action: Action): string => {
    switch (action.type) {
        case "SELECT":
            return action.index;
        default:
            return state;
    }
};
但是如果我在常量const SELECT=SELECT中定义SELECT并在上面的代码中实现它,我会得到一条错误消息:

property `index`. Property not found in object type
注意:按照F8应用程序的流程:


如何通过避免在action和reducer中都使用SELECT关键字来实现它?

通常情况下,action类型会有另一个常量,该常量将用于action和reducer

const SELECT = 'SELECT';
或者更好地避免任何冲突:

const SELECT = 'redux/<module>/SELECT';
在同一个动作文件或另一个动作文件中,这完全取决于你。然后只需像export const SELECT那样导出,像import{SELECT}那样从“./constants”导入即可

你也应该看看,可能是你感兴趣的

编辑:

它们用于对所有可能的不同行动案例进行分组。通过将分派的操作设置为与类型匹配,这有助于测试代码在语法上是否正确。请看他们的完整解释


但这并没有消除这样一个事实,即他们必须使用所需的操作类型来分派操作

谢谢,但我的问题集中在flow如何理解和推断由or运算符拆分的不同类型。@alejandrogarciarobles IIInteresting问题+1,我必须自己做一些研究,但这是值得的。让我知道,如果编辑部分是所有你期待的。