Typescript JSON to Class with "es5"

Posted

技术标签:

【中文标题】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() 不起作用。

那么如何正确处理呢?

【问题讨论】:

How do I initialize a typescript object with a JSON object的可能重复 这是一个班级constructor 的工作。这样您就可以将日期字段转换为 Date 对象等,这样您就可以做到new Lesson(attributes) 【参考方案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。抱歉,这不是正确的答案。 你也可以在那里看到,同样的问题。 ***.com/questions/40421100/… 你也可以使用这个库npmjs.com/package/serializer.ts

以上是关于Typescript JSON to Class with "es5"的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript 执行 console.log() 报错Cannot find name ‘console‘. Do you need to change

[TypeScript] Configuring TypeScript Which Files to Compile with "Files" and "OutDir&q

How to auto-generate a C# class file from a JSON string [closed]

项目windows运行正常,而Linux上运行报错: class path resource [kwhRules.json] cannot be resolved to absolute file

ueditor百度富文本编辑器linux下报错: class path resource [config.json] cannot be resolved to absolute file path

将 AngularJS 对象作为 TypeScript 类注入(缺少方法)