this code worked in angular 7. But after upgrading to angular 11 it created error
static getInstance<T>(DyanamicClasses, name: string, ...args: any[]) : T {
const instance = Object.create(DyanamicClasses[name].prototype);
instance.constructor.apply(instance, args);
return <T> instance;
}
Class
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;
}
}
}
I changed
static getInstance<T>(DyanamicClasses, name: string, ...args: any[]) : T {
const instance = Object.create(DyanamicClasses[name].prototype);
instance.constructor.apply(instance, args);
return <T> instance;
}
To
```static getInstance<T>(namspacesName, name: string, ...args: any[]) : T {
return new (DyanamicClasses)[name](...args);
}
And this is working now.