此代码在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);
}
现在这是有效的。