从泛型类-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
创建的类型。此外,泛型在类本身上,因此如果您理解了我的意思,那么您需要在该级别上传递它,而不是在
非原创的
函数级别上传递它