【问题标题】:What is the type for array of different modules in angular?角度不同模块数组的类型是什么?
【发布时间】:2019-02-09 04:38:19
【问题描述】:

在 Angular 5 核心模块中,我还导入了外部和内部模块。

所以,我创建了一个any 类型的数组来保存所有模块对象。我在导入和导出中使用了该数组变量。我的问题不是any,我们还有其他类型吗?如果是,那么 MODULES 和 COMPONENTS 应该是什么类型?

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 {
}

【问题讨论】:

  • 如果您查看NgModule 接口,角度团队使用Array<Type<any> | any[]>; 进行组件声明,使用Array<Type<any> | ModuleWithProviders | any[]>; 进行模块导入。
  • @David 为 MODULES 提供任何类型,COMPONENTS 是否有效?

标签: angular typescript angular5 angular-components angular-module


【解决方案1】:

对模块和组件使用any[] 类型是有效的。如果想用别的,可以参考NgModule接口,里面使用了

  • Array<Type<any> | any[]>; 用于组件声明
  • Array<Type<any> | ModuleWithProviders | any[]>; 用于模块导入

Type 是 Angular 框架中的一个类 (doc)

【讨论】:

    【解决方案2】:

    来自NgModule文档

    • 提供者类型是Provider[]
    • 声明类型为Array<Type<any> |any[]>
    • 导入类型为Array<Type<any> | ModuleWithProviders |any[]>
    • 导出类型为Array<Type<any> | any[]>
    • EntryComponents 类型为Array<Type<any> | any[]>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-02
      • 2014-06-14
      • 2017-03-16
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多