从泛型类-TypeScript获取方法的参数
我有一个泛型类,它有两个方法,其中一个调用另一个。由于两者都采用相同的参数,因此我尝试使用将其中一个的参数复制到另一个中。但是,我不知道在访问类的方法时如何传递泛型:从泛型类-TypeScript获取方法的参数,typescript,generics,visual-studio-code,intellisense,Typescript,Generics,Visual Studio Code,Intellisense,我有一个泛型类,它有两个方法,其中一个调用另一个。由于两者都采用相同的参数,因此我尝试使用将其中一个的参数复制到另一个中。但是,我不知道在访问类的方法时如何传递泛型: 类的东西{ _a:T; 构造函数(a:T){ 这个。_a=a; } 原件(另一个A:T,b:string){ //做点什么。。。 } 非原始(…参数:参数){ 返回此.original(…参数); } } 正如您在非原创方法中所看到的,我不会在任何地方传递泛型t。因此,params的计算结果为[另一个a:any,b:string
类的东西{
_a:T;
构造函数(a:T){
这个。_a=a;
}
原件(另一个A:T,b:string){
//做点什么。。。
}
非原始(…参数:参数){
返回此.original(…参数);
}
}
正如您在非原创
方法中所看到的,我不会在任何地方传递泛型t
。因此,params
的计算结果为[另一个a:any,b:string]
。相反,我希望它的计算结果是[anotherA:T,b:string]
,但我不知道在引用Thing.prototype.original
时如何传递T
泛型。例如,类似于参数的内容
有什么想法吗?你需要使用东西[“原创”]
而不是类型的东西。原型。原创
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);
}
}
类的东西{
_a:T;
构造函数(a:T){
这个。_a=a;
}
原件(另一个A:T,b:string){
//做点什么。。。
}
非原始(…参数:参数){
返回此.original(…参数);
}
}
问题肯定解决了!但是你有没有关于为什么会这样的信息以及区别是什么?谢谢问题是不能将泛型传递给使用typeof
创建的类型。此外,泛型在类本身上,因此如果您理解了我的意思,那么您需要在该级别上传递它,而不是在非原创的
函数级别上传递它