Angular TypeScript反序列化未按预期工作

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

我构建了一个模型类来表示一个对象。函数反序列化应该从JSON字符串填充它

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]