在Angular 13中,有一个已知的问题是ModuleWithProviders无法正确地解析提供商。这个问题可以通过手动添加类型来解决。
以下是一个示例:
import { NgModule, ModuleWithProviders } from '@angular/core';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { MyService } from './my.service';
@NgModule({
imports: [HttpClientModule],
providers: [MyService]
})
export class MyModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: MyModule,
providers: [
{
provide: MyService,
useFactory: (http: HttpClient) => new MyService(http),
deps: [HttpClient]
}
]
};
}
}
在此示例中,我们定义了一个MyService,它采用HttpClient作为依赖项。通过添加deps: [HttpClient],我们明确了依赖关系。我们使用useFactory来创建MyService实例,并传入对HttpClient的引用。
通过这种方式,我们解决了Angular 13中的ModuleWithProviders问题,我们现在可以在应用程序中正确使用MyService。