我在this link中找到了一个解决方案建议,并尝试通过在全局(ts)文件中添加以下代码来将其实现到我的项目中。
interface Component { }
type ComponentClass = { new (): Component };
const REGISTRY = new Map<string, ComponentClass>();
function getTypeFor(name: string): ComponentClass {
return REGISTRY.get(name);
}
function register(cls: ComponentClass): void {
REGISTRY.set(cls.name, cls);
}
然后注册我的每个组件如下:
class ComponentA implements Component { ... }
register(ComponentA);
我使用 getTypeFor 方法获取我的组件类型。当我尝试在组件的构造函数中放置一个参数时,一切都接近完美。正如我所看到的,这个&#34; ComponentClass&#34;类型等待无参数构造函数。 如果我的cnonstructor有参数,我该如何使用此方法或任何其他解决方案。
答案 0 :(得分:1)
尝试以下:
type ComponentClass = { new (...args:any[]): Component };