Вот код из чужого проекта (который я сильно упростил, но суть та же):
export abstract class UserRepository {
abstract findById(id: number): any
}
export class UsersService {
constructor(
private readonly usersRepository: UserRepository
) {}
findById(id: number): any {
return this.usersRepository.findById(id);
}
}
Почему мы можем обратиться к методу findById абстрактного класса usersRepository и при этом не получить ошибку?
Разве абстрактные классы не представляют только то, как должен выглядеть реальный класс? Мы же должны для начало реализовать (заимплементить) абстрактный класс.