在这种情况下,我遇到了“编译”问题:
interface IDataObjectConstructor {
new (objJSON?: any): myDataObject;
}
class myDataObject implements IDataObjectConstructor {
constructor(objJSON: any = null) {
for (var prop in objJSON) {
this[prop] = objJSON[prop];
}
}
}
Run Code Online (Sandbox Code Playgroud)
它说:
类“ myDataObject”错误地实现了接口“ IDataObjectConstructor”。
类型'myDataObject'不提供签名'new(objJSON ?: any):myDataObject'的匹配项
最后,我想像这样使用此对象:
class viewModelList<T extends myDataObject>{
item: T;
constructor(itemType: T) { this.item = itemType; }
itemBuilder(json?) { return new this.item(json); }
}
class derivedDataObject extends myDataObject{
constructor(objJSON: any = null) { super(objJSON); }
}
class derivedViewModelList extends viewModelList<derivedDataObject>{
constructor() { super(derivedDataObject); }
} …Run Code Online (Sandbox Code Playgroud) typescript ×1