Me pregunto cómo puedo obtener una referencia a un constructor de tipos para pasar la función como un valor. Básicamente, me gustaría tener un registro de tipo genérico que permita crear instancias llamando a una función miembro de una instancia de registro de tipo genérico.Hace referencia a la función de constructor
Por ejemplo:
class GeometryTypeInfo
{
constructor (public typeId: number, public typeName: string, public fnCtor: (...args: any[]) => IGeometry) {
}
createInstance(...args: any[]) : IGeometry { return this.fnCtor(args); }
}
}
después:
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));
}
Alguien sabe si es posible hacer referencia a una función de constructor de clases?
Gracias, me perdí el 'nuevo' literal en la especificación. –
en '// <- falla' Supongo que como es la solución, ya no falla, si es correcto, ¿puede editarla a' // <- no falla más' o algo similar? De lo contrario, es un poco engañoso, thx – peter