【发布时间】:2021-02-08 05:47:16
【问题描述】:
在具有泛型类型的方法中,我想识别对象以便对其进行强制转换并调用子类的方法。
我有从“BaseModel”类扩展而来的类(用户、地址、...)。 我有一个使用泛型类型 T extends BaseModel 的存储库类。
在这些存储库中,我想从子类中调用“fromJson”函数。 通过 T.fromJson ,或尝试使用开关检查对象的类型,或任何其他可能性...
export class RepositoryService<T extends BaseModel> {
constructor(protected api: ApiService) {}
findById(id: number): Observable<T> {
return this.api.findById(id).pipe(
map((o) => {
// return T.fromJson(o);
// OR
// switch(T) {
// case User:
// return User.fromJson(o);
// case Address:
// return Address.fromJson(o);
// }
})
);
}
}
但这两种方法都行不通。
我怎样才能成功地做到这一点?
谢谢。
【问题讨论】:
标签: angular typescript generics