我正在尝试从Http响应中获取C#字典对象,并将其转换为JavaScript中的Map。我无法弄清楚为什么我不能使用Map.prototype.forEach。它不断告诉我它不存在。根据{{3}}的MDN而言,它是在ES2015中首次引入的。我在tsconfig的lib部分中包含了ES2015,ES2015.collection和ES2015.iterable。我认为这足够了,但似乎根本没有用。有什么我想念的吗?
下面是我的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);
})
这是Map界面的关联文件,这是关联的代码Map.prototype.forEach
以下是有关该项目的一些信息:
Angular v6.0.4
Angular CLI v6.0.8
Typescript v2.7.2
答案 0 :(得分:0)
问题源于尝试在Http响应中获取C#字典对象并将其键入为Map。这只是无法正常工作。即使我将其键入为Map,响应仍返回{K:number,V:number []}的通用JavaScript对象。显然,对象不具有forEach函数。