gpt4 book ai didi

javascript - 实例泛型类抛出 "is not a constructor"

转载 作者:行者123 更新时间:2023-12-01 01:31:50 25 4
gpt4 key购买 nike

我试图实例化一个作为参数传递给另一个类的类,我将其放在一个文件中,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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com