【发布时间】:2019-05-06 11:09:13
【问题描述】:
在下面的 sn-p 中,y 的类型被推断为 Bar<{}>,由于二元性:
type Foo<A> = { type: "foo", x: A }
type Bar<A> = { type: "bar", y: A }
type FooBar<A> = Foo<A> | Bar<A>
type Opposite<A, FB extends FooBar<A>> = FB["type"] extends "foo" ? Bar<A> : Foo<A>
declare function process<A, FB extends FooBar<A>>(foo: FB): Opposite<A, FB>
const x: Foo<number> = null as any
const y = process(x) // Bar<{}>
我可以保留泛型类型A 以便process(x) 返回Bar<number> 而不明确指定它吗?
【问题讨论】:
标签: typescript generics