声明NgModule的元数据

时间:2019-03-25 12:59:50

标签: angular typescript angular2-decorators

是否可以在运行时查询以declarations装饰的模块类的@NgModule

@NgModule({
    imports: [
    ...
    ],
    declarations: [
        Component1,
        Component2,
        Component3
    ]
})
export class MyModule { }

所以,我要完成的工作大致是:

const declarations: Type[] = MyModule.declarations;

1 个答案:

答案 0 :(得分:1)

我不确定,但我相信在AOT模式下此答案将无效。除此之外,这是一个私有/顽皮的访问属性,并且可能会更改,但是您可以像这样访问定义:

const descriptor = Reflect.getOwnPropertyDescriptor(MyModule, '__annotations__');

if (descriptor) {
  const decorator = descriptor.value && descriptor.value[0];

  if (decorator) {
    const { declarations } = decorator; 
  }
}