Javascript TypeScript类中缺少方法

Javascript TypeScript类中缺少方法,javascript,typescript,methods,Javascript,Typescript,Methods,我有一个TypeScript模型,它包含如下属性和函数: class Person { name: string sayHello(){ console.log(name); } } 在创建其实例时,我可以按预期使用此sayHello()方法 当我从本地存储或外部web服务存储和获取对象时,问题就出现了。 虽然属性仍然存在,但方法已经消失。(很明显,因为它只是文本) 有没有办法恢复对象的完整性,以便能够使用其功能 或者,还有其他技术吗?例如,可以与type一起工作的helper类。当您保存到本

我有一个TypeScript模型,它包含如下属性和函数:

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这样的方法?