如何推断联合体的通用类型参数?

问题描述 投票:2回答:1

我想推断一个联合体的泛型参数,就像下面的代码一样,InferValueTypes应该是什么?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`
typescript generics union type-inference
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.