我有一个带有两种方法的泛型类,其中一个方法调用另一个方法。由于两者采用相同的参数,我尝试使用 Parameters Utility Type将一个参数复制到另一个参数中。但是,我不知道如何在访问类的方法时传递泛型:
class Thing<T> {
_a: T;
constructor(a: T) {
this._a = a;
}
original(anotherA: T, b: string) {
// do something...
}
unOriginal(...params: Parameters<typeof Thing.prototype.original>) {
return this.original(...params);
}
}
正如您在 unOriginal
中看到的那样方法,我没有通过通用 T
任何地方。结果,params
计算结果为[anotherA: any, b: string]
。相反,我希望它的计算结果为 [anotherA: T, b: string]
,但我不知道如何通过 T
引用 Thing.prototype.original
时通用。例如,类似 Parameters<typeof Thing<T>.prototype.original>
.
有什么想法吗?
最佳答案
您需要使用Thing<T>["original"]
而不是typeof Thing.prototype.original
class Thing<T> {
_a: T;
constructor(a: T) {
this._a = a;
}
original(anotherA: T, b: string) {
// do something...
}
unOriginal(...params: Parameters<Thing<T>["original"]>) {
return this.original(...params);
}
}
关于typescript - 从泛型类获取方法的参数 - TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67113515/