请检查以下示例:
type MyLiterals = 'a' | 'b'
type MyObject<T extends MyLiterals> = {
a: T,
b: T extends 'a' ? number : string
}
// thit works
let obj2: MyObject<'b'> = {
a: 'b',
b: ''
}
// Generic type 'MyObject' requires 1 type argument(s)
let obj1: MyObject = {
a: 'b',
b: ''
}
有没有一种方法可以实现我在第二个示例中尝试做的事情,即泛型的值是由分配给第一个属性的值推断出来的?
2条答案
按热度按时间wtzytmuj1#
或者,您可以创建所有可能对的并集。
这里我利用了分布式条件类型来实现这一点:
运动场
换句话说:
8xiog9wr2#
有函数可以吗?