Mi chiedo come ottenere un riferimento a un costruttore di tipi per passare la funzione come valore. Fondamentalmente, vorrei avere un registro di tipo generico che consenta di creare istanze chiamando una funzione membro di un'istanza di registro di tipo generico.Riferimento alla funzione costruttore
Ad esempio:
class GeometryTypeInfo
{
constructor (public typeId: number, public typeName: string, public fnCtor: (...args: any[]) => IGeometry) {
}
createInstance(...args: any[]) : IGeometry { return this.fnCtor(args); }
}
}
tardi:
class Point implements IGeometry {
constructor(public x: number, public y: number) { }
public static type_info = new GeometryTypeInfo(1, 'POINT', Point); // <- fails
// also fails:
// new GeometryTypeInfo(1, 'POINT', new Point);
// new GeometryTypeInfo(1, 'POINT', Point.prototype);
// new GeometryTypeInfo(1, 'POINT', Point.bind(this));
}
Qualcuno sa se è possibile fare riferimento a una funzione di classi di costruzione?
Grazie, ho perso il "nuovo" letterale nelle specifiche. –
in '// <- fail' Suppongo che siccome è la soluzione, non fallisce più, se è corretto forse puoi modificarlo in' // <- non fallire più' o qualcosa di simile? Altrimenti è un po 'fuorviante, grazie – peter