【发布时间】:2021-04-19 17:47:16
【问题描述】:
我有一个抽象类A。然后我有两个类,B 和 C,它们扩展了这个抽象类。
(示例代码):
abstract class A {
private name: string;
abstract saluto(): void;
constructor(name: string) {
this.name = name;
}
}
class B {
saluto(): void {
console.log(`Hello ${this.name}`);
}
constructor(name: string) {
super(name);
}
}
class C {
saluto(): void {
console.log(`Ciao ${this.name}`);
}
constructor(name: string) {
super(name);
}
}
我有一个函数,它给定数组const generators = [B, C],一个参数返回B 和C 创建的实例,并将参数传递给constctor。
例如:
const generators = [B, C];
function generate(generators: typeof A[], name: string): A[] {
return generators.map(gen => new gen(name)); // Here I have the error
}
const instances = generate(generators, 'Eugenio');
这里我有一个错误,因为它说Cannot create an instance of an abstract class.。
我该如何解决这个问题?应该有办法告诉 tsc 生成器不是 A 本身,而是扩展它的非抽象类。
【问题讨论】:
标签: typescript