如何修复错误类型错误:没有"new"就无法调用类构造函数 DyanamicClasses。



此代码在angular 7中工作。但在升级到angular 11后,它产生了错误


static getInstance<T>(DyanamicClasses, name: string, ...args: any[]) : T {
const instance = Object.create(DyanamicClasses[name].prototype);
instance.constructor.apply(instance, args);
return <T> instance;
}

类别

export namespace DyanamicClasses{
export class HallmarkMxFieldEditStatusAccessor implements IFieldEditStatus{
item: any;
fieldDefinition: FieldDefinition;
constructor(public _item: any, public _fieldDefinition: FieldDefinition){
this.item = _item;
this.fieldDefinition = _fieldDefinition;
}
}
}

我更改了

static getInstance<T>(DyanamicClasses, name: string, ...args: any[]) : T {
const instance = Object.create(DyanamicClasses[name].prototype);
instance.constructor.apply(instance, args);
return <T> instance;
}

```static getInstance<T>(namspacesName, name: string, ...args: any[]) : T {
return new (DyanamicClasses)[name](...args);
}

现在这是有效的。

最新更新