Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在typescript上从Map获取所有键?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 如何在typescript上从Map获取所有键?

Javascript 如何在typescript上从Map获取所有键?,javascript,angular,typescript,Javascript,Angular,Typescript,我使用Angular 2。我还有统计服务,它有以下方法: getComingStatistics(): Promise<Map<String, number>> { const url = `${this.eventUrl}/rest/report/statistic/coming`; return this.http.get(url) .toPromise() .then(response => {

我使用
Angular 2
。我还有
统计服务
,它有以下方法:

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);
}
getComingStatistics():承诺{
constURL=`${this.eventUrl}/rest/report/statistic/coming`;
返回此.http.get(url)
.toPromise()
。然后(响应=>{
将response.json()数据作为映射返回
})
.接住(这个.把手错误);
}
我从一个组件进行此调用:

constructor(private statisticsService: StatisticsService) {}

comingStatistics: Map<String, number>;
allComingUsers: number;

ngOnInit(): void {
    this.statisticsService.getComingStatistics().then(comingStatistics => {
        console.log(comingStatistics);
        console.log(comingStatistics.values());
    });
}
构造函数(私有统计服务:统计服务){
comingStatistics:地图;
所有共同语言:数字;
ngOnInit():void{
这个.statisticsService.getComingStatistics()。然后(comingStatistics=>{
console.log(comingStatistics);
log(comingStatistics.values());
});
}
问题出在这一行
console.log(comingStatistics.values())。我有一个例外:
Uncaught(承诺中):TypeError:comingStatistics.values不是函数

此外,map的方法没有一个有效(如
keys()
forEach
等)。获取值的方法只有一种:
comingStatistics['someKey']


< P>我如何得到我的地图的所有键和值?< /P> < P>类型断言欺骗类型系统,考虑结果与

的映射。
return response.json().data as Map<String, number>

在尝试访问映射之前,请确保将该值分配给局部变量。然后重试.get(property),其中“property”是您尝试检索的值的名称。我收到以下错误:
类型“objectconstructor”上不存在属性项。
它是ES2017方法。您需要正确配置TypeScript,在
lib
部分应该有
es2017
,并且应该加载相应的polyfill。谢谢!但是现在我得到的
属性“json”在类型“{}”上不存在
。这是什么?那是因为响应是非类型化的。使用
response:response
。正确的位置是定义变量的位置<然后(响应:Resonse)=>{…
return new Map(Object.entries(response.json().data));