我使用Angular 2
。我还有 StatisticsService
它有这个方法:
getComingStatistics(): Promise<Map<String, number>> {
const url = `${this.eventUrl}/rest/report/statistic/coming`;
return this.http.get(url)
.toPromise()
.then(response => {
return response.json().data as Map<String, number>
})
.catch(this.handleError);
}
我从组件中进行此调用:
constructor(private statisticsService: StatisticsService) {}
comingStatistics: Map<String, number>;
allComingUsers: number;
ngOnInit(): void {
this.statisticsService.getComingStatistics().then(comingStatistics => {
console.log(comingStatistics);
console.log(comingStatistics.values());
});
}
问题出在这一行console.log(comingStatistics.values());
。我有这个异常:未捕获( promise ):TypeError:comingStatistics.values 不是函数
。
此外, map 的任何方法都不起作用(例如 keys()
、forEach
等)。获取值的方法只有一种:comingStatistics['someKey']
。
如何获取 map 的所有键和值?
最佳答案
类型断言欺骗类型系统将结果视为映射
return response.json().data as Map<String, number>
但它不会使 data
对象成为 map 。
它应该转换为Map
才能成为 map :
return new Map(Object.entries(response.json().data));
关于javascript - 如何在 typescript 中从 Map 获取所有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44138356/