У меня есть абстрактная служба, которая принимает репозиторий в своем конструкторе и получает данные с помощью 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, а не использовать любой. Проблема в том, что компилятор не распознает T как UsersInfosRepository и не найдет метод findId. У кого-нибудь есть какие-либо предложения о том, как обеспечить соблюдение общего?
Ваше здоровье