【发布时间】:2021-03-17 05:35:09
【问题描述】:
我正在尝试创建一个基础模型,该模型将由具有描述其属性的接口的特定模型类扩展。
在基础模型类中应该有一个静态工厂()函数从静态上下文中实例化模型并返回具有特定模型+基础模型+指定接口的类型。
问题是我在静态函数U extends Model<T> 中遇到错误说T:静态成员不能引用类类型参数。
接口事件
interface Event {
id: number;
}
基础事件模型
export class Model<T> {
public static factory<U extends Model<T>>(this: { new(): U }, data: any): U {
return Object.assign(new this(), data);
}
}
事件模型
export class EventModel extends Model<Event> {}
目标是返回类型为EventModel,包含Event的所有属性。
【问题讨论】:
标签: typescript typescript-generics