関数を値として渡すために型コンストラクターへの参照を取得するにはどうすればよいのでしょうか。基本的には、ジェネリック型レジストリインスタンスのメンバー関数を呼び出してインスタンスを作成できるジェネリック型レジストリが欲しいです。
例えば:
class GeometryTypeInfo
{
constructor (public typeId: number, public typeName: string, public fnCtor: (...args: any[]) => IGeometry) {
}
createInstance(...args: any[]) : IGeometry { return this.fnCtor(args); }
}
}
後で:
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));
}
クラスコンストラクター関数を参照できるかどうか誰か知っていますか?