ModuleWithProviders / forRoot - 使用泛型作为提供程序的类型参数



我想知道为什么我不能这样做:

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

"T"仅指类型,但在此处用作值

但是useClass期待一种类型。

有可能在这里的工厂上使用仿制药吗?

正如@edric所述,我们需要一个类型参数

export class TopBannerModule {
  static forRoot(typeOfAppNavigationService: typeof AppNavigationService): ModuleWithProviders {
    return {
      ngModule: TopBannerModule,
      providers: [ 
        { provide: AppNavigationServiceToken, useClass: typeOfAppNavigationService]
    };
  }
}

相关内容

最新更新