Angular TypeScript反序列化未按预期工作
我构建了一个模型类来表示一个对象。函数反序列化应该从JSON字符串填充它Angular TypeScript反序列化未按预期工作,angular,typescript,Angular,Typescript,我构建了一个模型类来表示一个对象。函数反序列化应该从JSON字符串填充它 export class MyData { public name:string; public job:string; public deserialize (input:any) : MyData { Object.assign (this, input); return this; } } 但md仍然是一个对象 md=[object Objec
export class MyData
{
public name:string;
public job:string;
public deserialize (input:any) : MyData
{
Object.assign (this, input);
return this;
}
}
但md仍然是一个对象
md=[object Object]
我错过了什么?谢谢 这正按预期工作
Object.toString()
将返回[Object Object]
尝试
console.log(md.name)
。如果希望将整个对象作为字符串,请尝试JSON.stringify(md)
这将按预期工作Object.toString()
将返回[Object Object]
尝试
console.log(md.name)
。如果希望将整个对象作为字符串,请尝试JSON.stringify(md)
运行代码,ms是MyClass
的实例,尝试console.log(“md=”+(md instanceof MyData))
运行代码,ms是MyClass
的实例,请尝试console.log(“md=“+(md instanceof MyData))代码>我忽略了toString不是MyData的一部分这一事实。因此,很明显,不必在MyData中插入字符串,“Object”的输出是正确的。而且很明显,我的反序列化工作得很好-谢谢!需要明确的是:.toString()
是MyData
的一部分。它是对象原型的一部分。Typescript(Javascript)中的每个数据值类型都有一个.toString()
方法。当您通过将类型添加到字符串('m'+myData)
来强制类型为字符串时,这与对其调用.toString()
是一样的。我忽略了toString不是myData的一部分这一事实。因此,很明显,不必在MyData中插入字符串,“Object”的输出是正确的。而且很明显,我的反序列化工作得很好-谢谢!需要明确的是:.toString()
是MyData
的一部分。它是对象原型的一部分。Typescript(Javascript)中的每个数据值类型都有一个.toString()
方法。通过将类型添加到字符串('m'+myData)
,将类型强制为字符串时,这与对其调用.toString()
相同。
md=[object Object]