Types 流中是否有方法从不相交的联合类型中提取子类型定义?

Types 流中是否有方法从不相交的联合类型中提取子类型定义?,types,flowtype,Types,Flowtype,假设我有以下不相交的并集类型: type UnionType = {type: 'A', foo: string} | {type: 'B', bar: number} 我想提取子类型的类型定义: type SubTypeA = {type: 'A', foo: string} type SubTypeB = {type: 'B', bar: number} 但是我只想根据它们的类型值来提取它们,而不必重新定义整个子类型。我想对这些子类型进行类型定义,以便可以使用子类型注释函数,即:

假设我有以下不相交的并集类型:

type UnionType = {type: 'A', foo: string} | {type: 'B', bar: number}
我想提取子类型的类型定义:

type SubTypeA = {type: 'A', foo: string}
type SubTypeB = {type: 'B', bar: number}
但是我只想根据它们的
类型
值来提取它们,而不必重新定义整个子类型。我想对这些子类型进行类型定义,以便可以使用子类型注释函数,即:

    handleSubTypeA = (item: SubTypeA) => {
        <do stuff>
    };
handleSubTypeA=(项目:SubTypeA)=>{
};

为什么不分配子类型,然后执行
type UnionType=subtypa | subtyb?这样看起来更清楚了。好问题——这是我通常会做的,但是我正在使用的代码库创建了(相当复杂的)基于GraphQL查询的自动生成类型。正如您所建议的,当前处理不相交联合的最佳解决方案是显式地重新定义子类型。但我希望有一个干燥剂的解决方案。