ModuleWithProviders / forRoot - использовать дженерики в качестве параметра типа для провайдера - PullRequest
0 голосов
/ 17 апреля 2019

Мне интересно, почему я не могу сделать это:

export class TopBannerModule {
  static forRoot<T>(): ModuleWithProviders {
    return {
      ngModule: TopBannerModule,
      providers: [ 
        { provide: AppNavigationServiceToken, useClass: T]
    };
  }
}

'T' относится только к типу, но здесь используется в качестве значения

Однако useClass ожидает тип.

Возможно ли здесь использовать дженерики на фабрике?

1 Ответ

0 голосов
/ 17 апреля 2019

Как состояния @edric, нам нужен параметр типа

export class TopBannerModule {
  static forRoot(typeOfAppNavigationService: typeof AppNavigationService): ModuleWithProviders {
    return {
      ngModule: TopBannerModule,
      providers: [ 
        { provide: AppNavigationServiceToken, useClass: typeOfAppNavigationService]
    };
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...