在Typescript中考虑此方法。
public openComponent(component: any, data: ComponentData): void {
this.modalService.open(component);
}
这将尝试打开模态中的任何给定角度分量。只想知道是否有一种方法可以摆脱any
中的component: any
并进行输入吗?
简而言之,Typescript中是否有数据类型可以存储任何组件引用?
答案 0 :(得分:2)
我认为您需要Type
public openComponent<T>(component: Type<T>, data: ComponentData): void {
this.modalService.open(component);
}
答案 1 :(得分:2)
科斯坦科的答案是正确的,只是想给您一个替代方案,一个组件就是一个类,因此可以像这样键入:
/** Interface that can be used to generically type a class. */
export interface ComponentType<T> {
new (...args: any[]): T;
}
然后,这也应该起作用:
public openComponent<T>(component: ComponentType<T>, data: ComponentData): void {
this.modalService.open(component);
}
在某些情况下很有用。