我试图从Http响应中获取一个对象,并将其转换为JavaScript中的C#。我搞不懂为什么我不能使用Map.prototype.forEach。它一直告诉我它不存在。根据Map.prototype.forEach的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 interface
以下是关于该项目的一些信息:
Angular v6.0.4
Angular CLI v6.0.8
Typescript v2.7.2
发布于 2018-10-09 03:33:15
该问题源于试图在Http响应中获取C#字典对象并将其键入为映射。这本身就不起作用。返回的响应是一个泛型JavaScript对象{ K: number,V: number[] },即使我将其键入为映射。显然,一个对象没有forEach函数。
https://stackoverflow.com/questions/52708185
复制相似问题