Angular API返回的值未转换为日期

Angular API返回的值未转换为日期,angular,typescript,angular6,angular7,Angular,Typescript,Angular6,Angular7,在Angular 7应用程序上,我有以下模型: public getTopPosts() { return this.httpClient.get<TopPostsResponse>>('top-posts'); } 我正在组件方法中调用服务: getTopPosts(): Observable<PostModel[]> { return this.postService.getTopPosts().pipe( map((response: T

在Angular 7应用程序上,我有以下模型:

public getTopPosts() {
  return this.httpClient.get<TopPostsResponse>>('top-posts');
}
我正在组件方法中调用服务:

getTopPosts(): Observable<PostModel[]> {

  return this.postService.getTopPosts().pipe(

    map((response: TopPostsResponse) => { 

      console.log(response.created);
      console.log(response.created instanceof Date);

      var created = new Date(response.created);
      console.log(created);
      console.log(created instanceof Date);

      return {
        id: response.id, 
        created: response.created,
        title: response.title
      };

    }));

}
服务似乎没有将API返回的值转换为日期类型,但仍然是有效的日期,因为我能够创建它的实例


我缺少什么?

类型脚本不会自动将原始数据从请求转换为特定类型。您必须自己解析它

return {
    id: response.id, 
    created: new Date(response.created),
    title: response.title
  };

Typescript编译器在生成之前运行,而不是在运行时运行。因此,它不知道API的响应会是什么。传输Typescript代码,然后生成javascript代码,因此只有在编写代码时才会进行类型检查。之后,当它真正运行时,它不会分析来自外部源的数据类型。

类型脚本不会自动将请求中的原始数据转换为特定类型。您必须自己解析它

return {
    id: response.id, 
    created: new Date(response.created),
    title: response.title
  };

Typescript编译器在生成之前运行,而不是在运行时运行。因此,它不知道API的响应会是什么。传输Typescript代码,然后生成javascript代码,因此只有在编写代码时才会进行类型检查。之后,当它真正运行时,它不会分析什么样的数据来自外部源。

response.created
是一个字符串。
response.created
是一个字符串。所以你是说要正确地工作,即使在映射服务器的响应时,我也应该使用Map,例如。,作为回报,这个.httpClient.get>('top-posts');如果不是,那么TopPostsResponse类型就不是转换器。因此,您是说要使其正确工作,即使在映射来自服务器的响应时,我也应该使用Map,例如,作为回报,this.httpClient.get>('top-posts');如果不是,则TopPostsResponse类型不是转换器。
return {
    id: response.id, 
    created: new Date(response.created),
    title: response.title
  };