Angular API返回的值未转换为日期
在Angular 7应用程序上,我有以下模型: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
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
};