使用带有 resolveComponentFactory 的通用组件会导致 Component<{}> 而不是 <T>

Pil*_*ouk 5 angular-components angular angular-dynamic-components

我已经构建了一个对话框服务,它动态地创建了一个带有子组件的 DialogComponent。

我希望我的 DialogComponent 是一个泛型类,<T>因为我希望为我正在使用的任何组件子项输入。我目前正在使用这些行创建我的 DialogComponent ->

const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DialogComponent);
const componentRef = componentFactory.create(new DialogInjector(this.injector, map));
Run Code Online (Sandbox Code Playgroud)

问题是 resolveComponentFactory 实际上返回的是一个DialogComponent<{}>而不是T。我确实尝试过投射,但似乎我不能,因为缺少某些方法。

我想知道我怎么能做到这一点!

谢谢。

编辑

this.componentFactoryResolver.resolveComponentFactory<DialogComponent<T>> 做的伎俩..

Pie*_*Duc 3

要获得正确的类型,您需要在通用类型中传递所需的类型resolveComponentFactory

this.componentFactoryResolver.resolveComponentFactory<DialogComponent<T>>(DialogComponent);
Run Code Online (Sandbox Code Playgroud)