javascript - 如何将 Map 定义为 Angular TypeScript 方法中的参数?

标签 javascript angular typescript

我需要一些帮助,因为我陷入困境。我在 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/

相关文章:

特定条件下小数的 Angular 输入验证

typescript - 如何在不导入的情况下包含特定文件夹中文件的 typescript 文件?

angular - 如何测试 Angular 2 双向绑定(bind)输入值

typescript - 类型检查 createAction Redux 助手

javascript - 不显眼地提交 Ajax 表单两次

javascript - 使用 jQuery 删除脚本

javascript - 使用运算符扩展 RxJS Observable 类

javascript - 使用 Javascript SDK 本地化 Facebook 登录

node.js - Mongoose 中的人龄虚拟属性(property)

angular - 将变量从 ngFor 传递到组件的方法