我正在尝试从 Http 响应中获取一个 C# 字典对象并将其转换为 JavaScript 中的 Map。我无法弄清楚为什么我不能使用Map.prototype.forEach。它一直告诉我它不存在。根据Map.prototype.forEach的MDN,它是在ES2015中首次推出的。我将 ES2015、ES2015.collection 和 ES2015.iterable 包含在 tsconfig 的 lib 部分。我认为这就足够了,但它似乎根本不起作用。我缺少什么吗?
下面是我的 tsconfig 文件:
{
"compileOnSave": false,
"compilerOptions": {
"target": "es5",
"module": "es2015",
"lib": [
"es5",
"es2015",
"es2015.collection",
"es2015.iterable",
"es2016",
"es2017",
"dom"
],
"allowJs": false,
"checkJs": false,
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"outDir": "./dist/out-tsc",
"alwaysStrict": true,
"moduleResolution": "node",
"baseUrl": "./",
"typeRoots": [
"node_modules/@types"
],
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
}
}
我尝试使用的代码:
myMap: Map<number, Array<number>> = new Map<number, Array<number>>();
this.myMap.forEach((value: Array<number>) => { /* ERROR HERE */
console.log(value);
})
这是映射接口的关联文件 这是关联的代码 映射接口
以下是有关该项目的一些信息:
角度 v6.0.4
角度命令行界面 v6.0.8
打字稿 v2.7.2
问题源于尝试在 Http 响应中获取 C# 字典对象并将其键入为 Map。这本身不起作用。响应返回了一个通用的JavaScript对象{ K: number, V: number[] },即使我将其键入为Map。显然,对象没有 for Each 的功能。