如何在角度TypeScript方法中将Map定义为参数?



我需要一些帮助,因为我被困住了。我在 angular4(TypeScript(中定义一个简单的方法时遇到问题,该方法获取 Map 类型的参数。我想要的只是迭代Map中的元素。没什么特别的。

当我尝试循环访问 Map 对象时map2出现以下错误。

错误:ERROR TypeError: map2.forEach is not a function

doStuff(map2: Map<string, string>):number{
//I get an ERROR here, because map2 is not recognised as a Map()?
map2.forEach((value: string, key: string) => {
console.log(key, value);  
});
let map = new Map();
map.set("A","B");
map.set("C","d");
console.log(map.get("A")+" :"+ map.size);
//THIS WORKS
map.forEach((value: string, key: string) => {
console.log(key, value);
});
}
});

这就是我从另一个方法调用该方法的方式

...
//some other method
let map4 = JSON.parse('{ "myString": "string", "myNumber": "4" }');
this.myNumber = this.doStuff(map4);
...

您需要将文本对象(由JSON.parse返回(转换为Map以将其传递给doStuff。您可以使用Object.entries(从ES2017开始提供(来实现:

let map4 = JSON.parse('{ "myString": "string", "myNumber": "4" }');
this.myNumber = this.doStuff(new Map(Object.entries(map4)));

最新更新