Похоже, что это ошибка в Angular - в настоящее время он имеет открытый статус: Аннотация ProvidedIn не совместима с классами получения
У меня была такая же проблема со службами, которые имели базовые классыэто были также инъекционные услуги.Вы можете попробовать обходной путь, предложенный в связанной ошибке:
Чтобы обойти эту проблему, в любых производных классах мы должны установить для ngInjectableDef значение undefined.Это, в свою очередь, вызывает предоставленную логику для создания фабрики для нас
Или вы можете объявить службу по-старому и установить тип службы в разделе поставщиков в декораторе NgModule:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpClientModule
],
providers: [HttpService],
bootstrap: [AppComponent]
})
export class AppModule { }
Я знаю, что это не самый предпочтительный способ работы в Angular 6, но он все еще поддерживается и обойдет вашу проблему.
И я вижу, что вы уже пробовали это,Однако это определенно должно работать, так как мой сервис был настроен до того, как я обновил Angular 6 с 5. Это может указывать на то, что вы пропустили какую-то конфигурацию.Вы не забыли удалить предоставленный параметр In из Injectable decorator?