In meinem Typoskript ich versuche, ein Kind-Objekt über eine Methode in der Basisklasse zu erstellen/klonen. Dies ist mein (vereinfachtes) Setup. JetztAufruf Konstruktor von abgeleiteten Typ über diese in Typoskript
abstract class BaseClass<TCompositionProps> {
protected props: TCompositionProps;
protected cloneProps(): TCompositionProps { return $.extend(true, {}, this.props); } // can be overwriten by childs
constructor(props: TCompositionProps){
this.props = props;
}
clone(){
const props = this.cloneProps();
return this.constructor(props);
}
}
interface IProps {
someValues: string[];
}
class Child extends BaseClass<IProps>{
constructor(props: IProps){
super(props);
}
}
, ich werde ein neues Objekt
const o1 = new Child({someValues: ["This","is","a","test"]};
// get the clone
const clone = o1.clone();
Der Konstruktor getroffen wird erstellen (aber es ist nur der Aufruf der Funktion), was bedeutet, es gibt kein neues Objekt erstellt. Bei der Verwendung von return Child.prototype.constructor(props)
bekomme ich stattdessen mein neues Objekt.
Also wie kann ich den Konstruktor von Child
in seiner Basisklasse aufrufen?
versuchte auch this
Nie wussten zurückkehren wird, dass ich 'this' als Return-Typ festlegen. Danke dafür und für die Lösung. Nach vielen Versuchen war ich etwas verwirrt, als ich die Klammern setzte und den "Konstruktor" statt "dieses" ausgab. – KingKerosin