Поле provideFactory:
требует функции, а не результата вызова функции.
Если вы хотите использовать его с аргументом, вы можете использовать выражение стрелки:
bootstrap: [AppComponent],
declarations: [AppComponent],
imports: [
CoreModule,
HelloFrameworkModule,
],
providers: [{
provide: Logger,
useFactory: () = > loggerProviderFunc(1),
}]
})
Возможно, Angular также позволяет вызывать функции для useValue:
, но это я не проверял. Если это работает, обратите внимание, что он будет вызываться только один раз, тогда как фабричный метод вызывается каждый раз, когда распознаватель выполняет свою работу по разрешению.
bootstrap: [AppComponent],
declarations: [AppComponent],
imports: [
CoreModule,
HelloFrameworkModule,
],
providers: [{
provide: Logger,
useValue: loggerProviderFunc(1)
}]
})