【发布时间】:2016-11-18 18:28:08
【问题描述】:
我有以下打字稿模型对象user
export class User {
constructor(
private _name: string,
private _email: string
) {}
public get name():string {
return this._name;
}
public set name(value:string) {
this._name = value;
}
get email():string {
return this._email;
}
set email(value:string) {
this._email = value;
}
}
我通过以下代码存储对象:
let user = new User('myName', 'myEmail');
localStorage.setItem('user', JSON.stringify(user));
如果我查看本地存储有以下字符串:
{"_name":"myName","_email":"myEmail"}
如何再次获取用户对象?
let user: User = JSON.parse(localStorage.getItem('user'));
console.log(user.name); // logs undefined. Should log 'myName'
console.log(user._name); // this logs 'myName'. But according to the typescript documentation this should NOT work!
我想这与存储对象的下划线有关。 如何正确接收对象?
【问题讨论】:
-
JSON.parse返回纯 js 对象(不是User类型)。您应该手动创建User实例并对其进行初始化。 This 可能会有所帮助。
标签: javascript json typescript local-storage