【问题标题】:Typescript JSON to Class with "es5"Typescript JSON to Class with "es5"
【发布时间】:2018-02-10 19:07:07
【问题描述】:

使用 ES5JSON 转换为 Typescript 类的最佳/常用方法是什么(没有 Object.assign())。

例如

export class Lesson{
 name:string;
 teacher:Teacher;
 date:Date;
 scholars:Array<string>; //or string[] ... I dont care
}

JSON 看起来像:

{
 name:"LessonName",
 teacher:{name:"masterT", age:120},
 date:12345678912
 scholars:["Jim","Bob","Jimbo"]
}

在 Typescript 中,我可以将 JSON 转换为对象,甚至将其直接分配给课程对象(!-可怕的行为,但那是 JS-!)

但是对象没有任何方法例如。

例如所以lesson.date.getTime() 不起作用。

那么如何正确处理呢?

【问题讨论】:

标签: javascript json typescript


【解决方案1】:

试试

// first declare variable
var lesson: Lesson;

// and then assign that
lesson={
 name:"LessonName",
 teacher:{name:"masterT", age:120},
 date:12345678912
 scholars:["Jim","Bob","Jimbo"]
}

但问题是您只想在对象中放置一个值。

【讨论】:

  • 这不是有效的 TypeScript,也不能正确回答问题(例如,date 属性不是 Date 对象。)
  • 但是lesson 仍然不是Lesson 类的实例。您需要执行lesson = new Lesson() 之类的操作,然后开始设置属性。而date 仍然不是Date。抱歉,这不是正确的答案。
  • 你也可以在那里看到,同样的问题。
  • 你也可以使用这个库npmjs.com/package/serializer.ts
猜你喜欢
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多