作为TypeScript的新手,在实例化子类类型的基类中实现静态工厂的最佳方法是什么。例如,在一个基础模型类考虑findAll
方法:从基类中的静态方法实例化子类,使用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[]
这将返回BaseModel[]
而非Model[]
。