TypeScriptを初めて使用しているため、子クラスタイプをインスタンス化する基本クラスに静的ファクトリを実装する最適な方法は何ですか?例えば、ベースモデルクラスでfindAll
方法を考えてみましょう。これはBaseModel[]
いうよりModel[]
返しTypeScriptを使用して基本クラスの静的メソッドから子クラスをインスタンス化する
class BaseModel {
static data: {}[];
static findAll() {
return this.data.map((x) => new this(x));
}
constructor(readonly attributes) {
}
}
class Model extends BaseModel {
static data = [{id: 1}, {id: 2}];
constructor(attributes) {
super(attributes);
}
}
const a = Model.findAll(); // This is BaseModel[] not Model[]
。