在使用AgmCoreModule.forRoot方法时,需要指定其返回的ModuleWithProviders类型的泛型类型参数。具体做法是将ModuleWithProviders类型改写为以下形式:
import { NgModule } from '@angular/core';
import { AgmCoreModule, LAZY_MAPS_API_CONFIG } from '@agm/core';
import { AgmJsMarkerClustererModule } from '@agm/js-marker-clusterer';
import { environment } from '../environments/environment';
import { LazyMapsAPILoader, LazyMapsAPILoaderConfigLiteral } from './lazy-maps-api-loader';
@NgModule({
imports: [
AgmCoreModule.forRoot({
apiKey: environment.googleMapsApiKey,
libraries: ['places'],
language: 'en',
region: 'us',
apiLoader: {
provide: LAZY_MAPS_API_CONFIG,
useFactory: () => {
const config: LazyMapsAPILoaderConfigLiteral = {};
return new LazyMapsAPILoader(config);
}
}
}),
AgmJsMarkerClustererModule,
],
exports: [
AgmCoreModule,
AgmJsMarkerClustererModule,
],
})
export class AgmModule {}
在这里,我们添加了一个自定义的LazyMapsAPILoaderConfigLiteral类型的配置项来传递给AgmCoreModule的forRoot方法,这样就能成功地运行在Angular 14项目中了。