Я пытаюсь использовать альтернативный провайдер класса . Лучший способ описать мою проблему - это на примере. У меня есть этот сервис:
export MyService {
method() {
// Some Code
}
}
И я расширяю его с помощью детской службы:
export MyAnotherService extends MyService {
anotherMethod() {
// Some Code
}
}
Затем укажите его в поставщике модуля приложения следующим образом:
{ provide: MyService, useClass: MyAnotherService }
Тогда я использую родительский сервис, как это:
constructor(
private service: MyService
) {}
ngOnInit() {
this.service.method();
this.service.anotherMethod(); // <- Typescript complains about this line.
}
Все отлично работает, и приложение работает в браузере, за исключением того, что я получаю предупреждение TypeScript:
[ts] Property 'anotherMethod' does not exist on 'MyService'.
Можно ли заставить TypeScript осознавать тот факт, что anotherMethod
действительно существует?
Примечание: Доступ к другому методу, например this.service['anotherMethod']()
, решает проблему, но я хочу, чтобы TypeScript знал об этом методе.