我有一个与服务器通信的功能。其中一个获取参数被称为" userstate"。这个用户是一个对象。我从这个对象得到了这个:
userstate = {
'username' = '',
'display-name' = ''
};
我怎样才能上课呢?我现在有这个:
extends class Userstate {
username: string;
displayName: string;
constructior() {
this.username = this['username'];
this.displayName = this['display-name'];
}
}
在我的功能中,我这样做:
let get_user_stuff = (userstate: Userstate) => {
console.log(userstate.username);
console.log(userstate.displayName);
};
我的控制台说:
darky_chan
undefined
我希望你能帮助我:) 提前致谢
答案 0 :(得分:1)
你在寻找这样的东西:
class Userstate {
username: string;
displayName: string;
constructor(jsonObject: any) { // Notice the json object passed to constructor
this.username = jsonObject.username;
this.displayName = jsonObject['display-name'];
}
}
let convertToInstance = (jsonObj: any) => (new Userstate(jsonObj));
let instance = convertToInstance({
'username': 'name',
'display-name': 'd-name'
});
console.log(instance);
console.log(instance.displayName);
答案 1 :(得分:0)
根据typescript specs,您可以拥有包含无效标识符的属性名称:
class Userstate
{
username: string;
"display-name": string;
}
唯一的问题是您必须使用索引器访问它们:
const u = new Userstate();
u["display-name"] = 23;