我需要一些帮助,因为我陷入困境。我在 angular4 (TypeScript) 中定义一个获取 Map 类型参数的简单方法时遇到问题。我想要的只是迭代 Map
中的元素。没什么特别的。
当我尝试迭代 Map 对象 map2
时,出现以下错误。
错误:错误类型错误:map2.forEach 不是函数
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)));
关于javascript - 如何将 Map 定义为 Angular TypeScript 方法中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50787562/