我有一个带有接口的类:
从代码中的另一个组件中,我读取了英雄列表的json,并希望为每个英雄创建一个类(以便更轻松地操作其数据)
我的商店列表类别=>
interface ShopItemInterface {
name: string;
image: string;
price: number;
description: string;
}
export class ShopItem implements ShopItemInterface {
public name: string;
public image: string;
public price: number;
public description: string;
constructor(obj: object) {
for (let key in obj) {
// this doesn't work and I don't know why, it is always false
if (this.hasOwnProperty(key)) {
this[key] = obj[key];
}
}
}
}
LOADER COMPONENT CLASS =>
ngOnInit() {
this.http.get(this.jsonShopLocationFile).subscribe(res => {
for (let i = 0; i < res['items'].length; i++) {
this.shopItems.push(new ShopItem(res['items'][i]));
}
console.log(this.shopItems[0].name);
});
}
如果不手动列出所有参数,我无法找到一种将json数据正确绑定到对象的方法。 (那是一团糟,可重用性为0)
您将如何正确实现?我应该创建一个类,然后直接调用诸如hero.FromJSON(jsonObj)之类的函数来手动设置所有属性吗?我可以在构造函数中以某种方式做到这一点吗?
谢谢!
答案 0 :(得分:0)
因为在构造对象时,它不具有那些属性,因此这些属性将是不确定的,只需删除测试即可。请记住,接口是用于编译器的TypeScript构造,并且您正在浏览器中运行JavaScipt。
numpy.ndarray