Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-从其名称访问组件/类_Angular - Fatal编程技术网

Angular 角度-从其名称访问组件/类

Angular 角度-从其名称访问组件/类,angular,Angular,我在中找到了一个解决方案建议,并试图通过在全局ts文件中添加以下代码将其实现到我的项目中 interface Component { } type ComponentClass = { new (): Component }; const REGISTRY = new Map<string, ComponentClass>(); function getTypeFor(name: string): ComponentClass { return REGISTRY.get

我在中找到了一个解决方案建议,并试图通过在全局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);
}
我正在使用getTypeFor方法获取组件类型。当我尝试在组件的构造函数中放入一个参数时,一切都近乎完美。如我所见,此ComponentClass类型等待一个无参数构造函数。 如果我的cnonstructor有参数,我如何使用此方法或任何其他解决方案。

请尝试以下方法:

type ComponentClass = { new (...args:any[]): Component };

所有构造函数是否共享相同的参数?如果是这样,请将ComponentClass的定义更改为匹配-否则,您可能会觉得这种方法不走运。请共享错误文本
type ComponentClass = { new (...args:any[]): Component };