0
我正在努力定义一个方法来正确地获取基类的子类。方法参数应该是给定类的子类
handle(content: AbstractClass)
直接与继承的类调用它导致参数类型的“具体类”是不能分配给类型“抽象类”的参数。
我已经与一个接口,类似的结果参数类型“的typeof具体类”的尝试是不分配给类型的参数“接口”
class AbstractClass implements Interface
handle(content: Interface)
我已经发现一个问题类似topic但该解决方案也不能帮助我。
interface ClassConstructor<T extends AbstractClass> {
new(): T;
}
abstract class AbstractClass {
private test: string;
constructor(value: string) {}
}
class B extends AbstractClass {
private test2: string;
constructor(value: string, value2: number) {
super(modal);
}
}
class S1 {
show(content: ClassConstructor<AbstractClass>) {}
b() {
this.a(B);
}
}
我想要实现的方法show
可以采取抽象类的每一个实现方式中,不管如何定义F.E.不同的构造函数和类似的。
我通过构造函数将它与Angular和Angular resolves依赖关系结合使用。
我该如何用TypeScript做到这一点?
因此,如果构造函数不同,就不可能使用它? – CSchulz
如果构造函数不同,那么你可能需要一个不同的解决方案。你确切的用例是什么?在你到目前为止提供的代码中,你可以将它改为'a(content:{new(value:string,value2:number):B}){}'并且一切正常。对'ClassConstructor'没有真正的需求。所以请更新您的问题与您的真实情况,那么你可能会得到一个答案,可以帮助你 –
我已经更新了我的问题。我希望现在更清楚。我有一个基类,它将以不同的方式和不同的依赖关系导致的不同构造函数进行扩展。我想实现给定的方法可以采取每个实现。 – CSchulz