如何推断并集的泛型类型参数?

时间:2020-06-11 09:47:21

标签: typescript generics union type-inference

我想像后面的代码一样推断一个联合的通用参数。 InferValueTypes应该是什么?

interface WithValue<T> {}

interface ValuedNumber extends WithValue<number> {}
interface ValuedString extends WithValue<string> {}

type Valued = ValuedNumber | ValuedString;

type InverValueType<T extends WithValue<any>> = T extends WithValue<infer V>  ? V : never;
type AType = InferValueType<ValuedNumber>; // Will infer `number`

type InferValueTypes<T> = ???;
type ValueTypes = InferValueTypes<Valued>; // Expect to infer `string | number`

1 个答案:

答案 0 :(得分:0)

InferValueTypes可以很好地处理工会。我需要更专心。