typescript - 如何为接口方法指定泛型参数
考虑以下示例:
type Foo<T> = (x: T) => T[]
type X = ReturnType<Foo<number>>
如预期,X=number[]
现在,这个函数是接口的一部分:
interface Bar {
foo<T>(x: T): T[]
}
type BarFoo = Bar['foo']
type Y = ReturnType<BarFoo<number>>
type Z = ReturnType<Bar['foo']<number>>
第 Y 行失败,出现 BarFoo 不是泛型
第 Z 行出现语法错误(预期 '>')
我如何获取通用接口方法的特定版本?
这也不起作用(结果是 unknown[]):
type Ret = BarFoo extends (x: number) => infer T ? T : never