typescript - Vad är typen för en array av olika moduler i Angular?


I Angular 5 kärnmodul importerar jag både externa och interna moduler.

Så jag skapade en array av typen any för att hålla alla modulobjekt. Jag använde den arrayvariabeln i imports och exports. Min fråga är om det finns andra typer istället för any? Om så är fallet, för MODULES och COMPONENTS vilken typ bör användas?

const MODULES: any[] = [
  BrowserModule,
  BrowserAnimationsModule,
  HttpClientModule,
  RouterModule,
];

const COMPONENTS: any[] = [
  HeaderComponent
];

const PROVIDERS: Provider[] = [
  NotifyService,
  RouterHelpers
];

@NgModule({
  imports: [
    ...MODULES,
  ],
  declarations: [
    ...COMPONENTS,
  ],
  providers: [
    ...PROVIDERS
  ],
  exports: [
    ...MODULES,
    ...COMPONENTS,
  ]
})

export class CoreModule {
}

Svar #1

från NgModule-dokument

  • Leverantörstyp är Provider[]
  • Deklarationstyp är Array<Type<any> |any[]>
  • Importtypen är Array<Type<any> | ModuleWithProviders |any[]>
  • Exporttypen är Array<Type<any> | any[]>
  • EntryComponents-typen är Array<Type<any> | any[]>

Svar #2

Att använda typen any[] för moduler och komponenter är giltigt. Om du vill använda något annat kan du referera till NgModule-gränssnittet, som använder

  • Array<Type<any> | any[]>; för komponentdeklarationer
  • Array<Type<any> | ModuleWithProviders | any[]>; för modulimporter

Type är en klass från Angular-ramverket (dokumentation)