【发布时间】:2022-01-23 21:48:39
【问题描述】:
我是 Typescript 新手,遇到了 JSON 反序列化问题。
考虑这个类:
class Product {
public id!: number;
public get calculatedProperty() : string {
return "Test";
};
};
如您所见,calculatedProperty 是运行时计算的属性。
另外,考虑一下我以这种方式将 JSON 字符串反序列化到我的对象中:
var jsonData = '{ "id": 2 }';
let deserialized = JSON.parse(jsonData) as Product;
问题来了:
- 此调用
console.log(deserialized.id);正确返回1。 - 此调用
console.log(deserialized.calculatedProperty);返回undefined!
我真的不明白。看来as Product并没有真正创建Product对象,因为如果我直接调用构造函数new Product,计算的属性是存在的。
我在 JSON 反序列化方面做错了什么?
谢谢!
【问题讨论】:
标签: json typescript