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