我有一个类有一个方法:
export class ItemType {
id1: string;
description: string;
treeItemTypeDescription(): string {
return this.id1 + this.description;
}
}
我获取此类表单Web服务的数据,并希望调用此方法:
itemTypeResource.parents(this.originalPosition).then((parents: app.domain.ItemType[]) => {
console.log(typeof(parents[0]));
console.log(parents[0].treeItemTypeDescription());
});
但是得到错误:
TypeError: parents[0].treeItemTypeDescription is not a function
我认为JS-object的错误原因与TS-object没有关联。但我不知道如何解决它。
更新
的console.log(Object.getOwnPropertyNames(父母[0]));
仅提供字段,但不提供方法:
["autoincrementedId", "description", "entityType", "excelId", "excelParentId", "id1", "id2", "id3", "id4", "id5", "parentAutoId"]
UPDATE2:
如果我自己创建对象,一切正常:
var s = new app.domain.ItemType();
s.id1 = "1";
s.description = "some";
console.log(s.treeItemTypeDescription());
答案 0 :(得分:2)
这是我找到的解决方案:
static fromJSON(json: app.domain.ItemType): app.domain.ItemType {
var result = new ItemType();
for (var key in json) {
if(result.hasOwnProperty(key)) {
result[key] = json[key]
}
}
return result;
}
我创建了将JSON对象转换为TS对象的静态方法