我目前正在从事我的第一个Angular项目,这是我第一次使用TypeScript。
我的项目中有扩展类的模型。
export class MyModel {
fill(data) {
Object.keys(this).forEach(field => this[field] = data[field]);
return this;
}
}
这使我可以打电话:const coolModel = (new CoolModel()).fill(data);
const coolModel很好地暗示是CoolModel类型。
不过我想打个电话:CoolModel.fill(data);
我认为这段代码可以做到:
export class MyModel {
static fill(data) {
const coolMe = new this();
Object.keys(coolMe ).forEach(field => coolMe [field] = data[field]);
return coolMe ;
}
}
并调用:const coolModel = CoolModel.fill(data);
,但是现在提示const coolModel属于MyModel类型。
甚至可以在扩展父对象上使用静态方法来创建子对象吗?甚至可以说这是期望的吗?
我的胆量告诉我应该有可能。