我试图实例化一个作为参数传递给另一个类的类,我将其放在一个文件中,ImportedClass.ts:
export default class ImportedClass {
public constructor() {
}
public async exampleMethod() {
return "hey";
}
}
这在另一个 InstanceClass.ts 中:
interface GenericInterface<T> {
new(): T;
}
export default class InstanceClass <T extends { exampleMethod() }> {
private c: GenericInterface<T>;
public constructor(c: GenericInterface<T>) {
}
async work() {
const instanceTry = new this.c();
instanceTry.exampleMethod();
}
}
这在另一个 ClassCaller.ts 中:
import ImportedClass from './ImportedClass';
import ImportedClass from './InstanceClass';
const simulator = new InstanceClass (ImportedClass);
然后当我这样调用它时:
simulator.work();
它抛出这个错误:
this.c is not a constructor
最佳答案
您忘记实际使用构造函数参数!
private c: GenericInterface<T>;
public constructor(c: GenericInterface<T>) {
}
你错过了这个:
private c: GenericInterface<T>;
public constructor(c: GenericInterface<T>) {
this.c = c;
}
你可以这样做......自动 map !
public constructor(private c: GenericInterface<T>) {
}
关于javascript - 实例泛型类抛出 "is not a constructor",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53209910/