我正在使用Angular的模块工厂动态创建一些组件:
const moduleRef = moduleFactory.create(this.injector);
const compFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(moduleRef.instance.widgetComponent);
const componentRef = container.createComponent(compFactory);
我有一个抽象类定义了要创建的小部件,还有一些我在这里删除的其他方法,其中T
是Angular组件:
export abstract class WebPartBaseModule<T extends ComponentWidgetBase> {
abstract widgetComponent;
}
然后在派生类模块中,我明确设置了所需的组件:
export class HealthCheckModule extends WebPartBaseModule<HealthCheckComponent> {
widgetComponent = HealthCheckComponent;
}
这很好用,但是我想知道是否有一种方法可以从T
推断/分配基类中的类型。从那时起,我就是这样做的,我不需要在每个派生类中分配widgetComponent
,但显然不起作用:
export abstract class WebPartBaseModule<T extends ComponentWidgetBase> {
widgetComponent = T;
}