Javascript TypeScript类中缺少方法
我有一个TypeScript模型,它包含如下属性和函数:Javascript TypeScript类中缺少方法,javascript,typescript,methods,Javascript,Typescript,Methods,我有一个TypeScript模型,它包含如下属性和函数: class Person { name: string sayHello(){ console.log(name); } } 在创建其实例时,我可以按预期使用此sayHello()方法 当我从本地存储或外部web服务存储和获取对象时,问题就出现了。 虽然属性仍然存在,但方法已经消失。(很明显,因为它只是文本) 有没有办法恢复对象的完整性,以便能够使用其功能 或者,还有其他技术吗?例如,可以与type一起工作的helper类。当您保存到本
class Person {
name: string
sayHello(){ console.log(name); }
}
在创建其实例时,我可以按预期使用此sayHello()
方法
当我从本地存储或外部web服务存储和获取对象时,问题就出现了。
虽然属性仍然存在,但方法已经消失。(很明显,因为它只是文本)
有没有办法恢复对象的完整性,以便能够使用其功能
或者,还有其他技术吗?例如,可以与type一起工作的helper类。当您保存到本地存储时,您将保存类数据的JSON表示形式;当您从本地存储中获取对象时,它将只是一个对象,而不是原始类的实例 您可以寻找一个外部库来帮助您实现这一点,但简单的解决方案是创建类的新实例,并使用
对象将字段值分配给类。分配:
class Person {
public constructor(public name?: string){}
sayHello() { console.log(name); }
}
let p = new Person("Test");
let data = JSON.stringify(p);
let p2 = new Person()
Object.assign(p2, JSON.parse(data));
也许你在寻找下面类似于Titian的答案,Object assign不会深度复制项目,有没有更好的方法来恢复lodash Ngdeph之类的方法?嗨,Object assign不会深度复制项,有没有更好的方法来恢复像lodash ngdeep这样的方法?