typescript - 如何修复错误类型错误:没有'new'就不能调用类构造函数DynamicClasses
问题描述
此代码在 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);
}
这正在起作用。
推荐阅读
- java - 根据设计分辨率生成当前屏幕分辨率的正确坐标
- mysql - 具有该特定问题的 MySQL 触发器问题
- curl - 在wsl上安装rust
- html - 主题更改搜索栏
- javascript - 使用 Leaflet 用 Turf 溶解 GeoJSON 多边形
- python - 如何在 Smartsheet Python SDK 中使用搜索结果?
- python - Python powerset - 将 itertools.chain 对象解压缩到列表中时出现内存错误
- sql - 在 SQL 中计算具有别名的新字段
- java - 特定本地主机路径的 ERR_EMPTY_RESPONSE
- java - java.lang.NoSuchMethodError: 'java.util.stream.Collector com.google.common.collect.ImmutableList.toImmutableList()' 使用 ChromeDriver 和 Selenium