是否可以做这样的事情?这将有很大帮助。我们从泛型中获得方法签名
class Foo<Parent extends Foo> {
public bar<U extends Parameters<Parent.bar>>(x: U) {
}
}
答案 0 :(得分:1)
如果希望Parent
扩展Foo
,则不能这样做,因为那样会导致类型的循环依赖,但是如果将Parent
约束到其他东西,则可以这样做bar
:
class Foo<Parent extends { bar: (...a: any[]) => any}> {
public bar<U extends Parameters<Parent['bar']>>(x: U) {
}
}
您可能还对该版本将参数传播回bar
函数的版本感兴趣:
class Foo<Parent extends { bar: (...a: any[]) => any}> {
public bar(...x: Parameters<Parent['bar']>) {
}
}