i have a "compilation" problem in this case :
interface IDataObjectConstructor {
new (objJSON?: any): myDataObject;
}
class myDataObject implements IDataObjectConstructor {
constructor(objJSON: any = null) {
for (var prop in objJSON) {
this[prop] = objJSON[prop];
}
}
}
it say :
class 'myDataObject' incorrectly implements interface 'IDataObjectConstructor'.
Type 'myDataObject' provides no match for signature 'new (objJSON?: any) : myDataObject'
Finally i want to use this object like this :
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); }
}
let oManager = new derivedViewModelList();