【发布时间】:2019-09-28 20:47:36
【问题描述】:
我有一个抽象服务,它在其构造函数中获取存储库并使用 Sequelize 获取数据。抽象服务如下所示:
export abstract class BaseService<T> {
public constructor(private _repo: any) {
}
public findById(id: string) {
return this._repo.findById(id).pipe(
map(res => Response.ok(res)))
)
}
}
其中 T 是存储库类型:
export class UsersInfosRepository extends BaseRepository<UserInfosModel>{
public findById(id: string): Observable<UserInfosModel | null> {
return from(UserInfosModel.findById(id));
}
}
UserInfosModel 是 @Model 类的后续。
现在这工作正常,但唯一的事情是我希望强制类型为
_repo
使用泛型 T 而不是使用 any。问题是编译器不会将 T 识别为 UsersInfosRepository,也不会找到方法 findId。有没有人对如何执行泛型有任何建议?
干杯
【问题讨论】:
标签: typescript typescript-generics sequelize-typescript