带有日期类型的 Typescript GET 对象

Posted

技术标签:

【中文标题】带有日期类型的 Typescript GET 对象【英文标题】:Typescript GET object with date type 【发布时间】:2017-12-16 02:15:27 【问题描述】:

我在前端有 python REST API 和 angular2。现在我需要使用日期类型字段解析对对象应答的 GET 请求。我的 json 示例:


"date_answer": "2015/07/05", 
"id": 1, 
"text": "some text", 

我在控制器中使用此代码:

getAnswers() : Observable<Answer[]> 
return this.http.get(this.answerUrl)
          .map((res:Response) => res.json())
          .catch((error:any) => Observable.throw(error.json().error || 'Server error'));

我要做的是解决我在构造函数中解析日期字段的问题,如下所示:

 export class Answer 
  id: number;
  text: string;
  date_answer: Date;

  constructor(
    id: number, 
    text: string, 
    date_string: string
    )
      this.date_answer = new Date(date_string)
    

但是这种方法没有帮助。也许有一些更好的方法可以从 json 获取日期作为日期类型。

【问题讨论】:

日期是否总是相同的格式 yyyy/mm/dd ? @codtex 我在 json 中只有两个元素用于测试。它们都有相同的格式 yyyy/mm/dd。 一个简单的方法可能是new Date(Date.parse('2015/07/05')) 将返回类似2015-07-04T21:00:00.000Z 的内容,具体取决于您所在的时区。另一个不太好的解决方案是以肮脏的方式拆分和解析日期:) 为什么上述方法不起作用? 你问的是日期类型吗? 【参考方案1】:

我正在使用pleerock的class-transformer来实现解析。

也许你看看它。

【讨论】:

以上是关于带有日期类型的 Typescript GET 对象的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript是否支持带有对象初始值设定项的构造函数?

TypeScript - 对象初始值设定项中的 Get 属性问题

在“”类型上找不到带有“数字”类型参数的索引签名 - Typescript 编译器错误

如何使用 get 方法访问 Typescript 中对象的字段?

Typescript 元素隐式地具有任何类型,带有 for...in 循环

Typescript:定义对象的类型