【发布时间】:2021-12-30 17:44:13
【问题描述】:
给定一个存在于生成文件中的联合类型:
export type UnionedType = {a: number; ...otherProps;} | {b: string; ...otherProps;};
如何提取每个内联类型的类型?也就是说,如何为{a: number; ...otherProps;} 声明一个类型,为{b: number; ...otherProps;} 声明一个类型,因为内联成员{a: number; ...otherProps;} 总是有一个名为“a”的道具,而内联成员{b: number; ...otherProps;} 一个名为“b”的道具”。
每次生成“UnionedType”时,最好提取可能的类型:如type A = {[outputOfSomeTypeMagic <P , UnionedType>]};,这样在魔术type A = {a: number; ...otherProps;}之后。
【问题讨论】:
-
type A总是有a属性?或者应该是什么提取逻辑?如果是,您可以使用type A = Extract<UnionedType, { a: any }> -
我不明白这个问题。您能否提供更多示例和测试用例?
-
@AlekseyL。是的,就是这样。我用这个重要的细节更新了这个问题。我希望它现在更清楚。谢谢。
标签: typescript typescript-types