Ich habe eine Basisklasse, die um mehrere untergeordnete Klassen erweitert wird. Jetzt möchte ich den Typ der Elternklasse als den Typ einer Eigenschaft haben. Alle Kindtypen sollten ebenfalls gültig sein. Ich habe typeof versucht, aber das funktioniert nicht. Haben Sie Ideen, wie Sie den Typ einer Basisklasse als Typ für eine Eigenschaft festlegen können? Der Grund, warum ich einen Hinweis auf die Art wollen, ist, dass ich zum Beispiel neue test.componentType neue Instanzen der Klasse, zu schaffen in der Lage sein wollen()Typescript typeof Klasse und abgeleitete Klassen
class Parent {
}
class Child1 extends Parent {
}
class Child2 extends Parent {
}
interface Config {
componentType: typeof Parent;
}
const test: Config = {
componentType: typeof Child2
}
new test.componentType() -> should create a new instance of Child2
gibt es keine Notwendigkeit Um typeof zu verwenden, verwenden Sie einfach Parent – toskv
Innerhalb jeder Klasse können Sie einfach 'this.constructor.prototype' verwenden, um die Elternklasse zu erhalten. Es ist nicht klar aus Ihrer Frage, warum Sie diese Eigenschaft in der Schnittstelle definiert haben müssen. – artem
Bearbeitete die Frage jetzt – Abris