Map.prototype.forEach не существует проекта Angular 6 - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь взять объект C # Dictionary из ответа Http и привести его к карте в JavaScript.Я не могу понять, почему, черт возьми, я не могу использовать Map.prototype.forEach.Он постоянно говорит мне, что его не существует.Согласно MDN для Map.prototype.forEach он был впервые представлен в ES2015.Я включил ES2015, ES2015.collection и ES2015.iterable в раздел lib библиотеки tsconfig.Я подумал, что этого будет достаточно, но, похоже, это не работает вообще.Есть что-то, чего мне не хватает?

Ниже приведен мой файл 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);
})

Вот соответствующий файлдля интерфейса карты Вот соответствующий код Интерфейс карты

Вот небольшая информация о проекте:

Angular v6.0.4

Angular CLIv6.0.8

Typescript v2.7.2

1 Ответ

0 голосов
/ 08 октября 2018

Проблема возникла из-за попытки взять объект C # Dictionary в ответ Http и ввести его как Map.Это просто не работает изначально.Ответ возвращал общий объект JavaScript {K: число, V: число []}, хотя я печатал его как карту.Очевидно, что у объекта нет функции forEach.

...