作爲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[]
。