Не удается разрешить параметры для службы.Это станет ошибкой в ​​Angular 6.x - PullRequest
0 голосов
/ 08 октября 2018

У меня появляется предупреждение, когда я создаю библиотеку журналов, в которой есть базовый абстрактный класс.После проверки подобных проблем, большинство из них просто говорят, что я должен удалить @Injectable в базовом классе, что я уже сделал.Кстати, все мои классовые зависимости используют Inject, поскольку все они InjectionTokens созданы в LoggingModule.forRoot().

logging.module.ts

@NgModule({
  declarations: [],
  imports: [],
  providers: [],
  exports: []
})
export class LoggingModule {

  public static forRoot(
    appName: string,
    customLogger: Provider,
    customLoggerDeps: Provider[] = [],
    filteredLogLevels: Array<LogLevel | string> = [],
    filterStrategies: Array<
      (logLevel: LogLevel | string, filter: LogLevel | string) => boolean
      > = []
  ): ModuleWithProviders {
    return {
      ngModule: LoggingModule,
      providers: [ // provide injection tokens here based from parameters 
      ]
    };
  }
}

logger.ts

export abstract class Logger {
    // abstract method declarations here
}

CustomLogger.ts

@Injectable()
export class CustomLogger extends Logger {
  constructor(
    @Inject(APP_NAME_TOKEN) protected appName: string,
    @Optional()
    @Inject(FILTER_STRATEGIES)
    protected filterStrategies: Array<
      (logLevel: LogLevel | string, filter: LogLevel | string) => boolean
    >,
    @Optional()
    @Inject(FILTERED_LOG_LEVELS)
    protected filteredLogLevels: Array<LogLevel | string>
  ) {
    super(appName, filterStrategies, filteredLogLevels);
  }
}

Я немного запутался, почему угловой не знаю какввести эти токены.Любая помощь будет оценена.

Кстати, я использую Angular 6.1 с CLI

...