Компилятор TypeScript борется с новой картой()

Я пытаюсь использовать Mapструктуру данных TypeScript, но получаю ошибку folowing compiler:

argument of type '(string | number)'[][] is not assignable to parameter of type 'iterable<[{},{}]>

Моя карта:

 export const PostTypeMap = new Map([
    [0, 'Link'],
    [1, 'Status'],
    [2, 'Photo'],
    [3, 'Video'],
    [4, 'Offer'],
    [5, 'Unknown'],
    [6, 'Event']
]);

И мой tsconfig.js:

{
  "compilerOptions": {
    "target": "ES5",
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "suppressImplicitAnyIndexErrors": true,
    "allowSyntheticDefaultImports":true
  },
  "awesomeTypescriptLoaderOptions": {
    "resolveGlobs": true,
    "forkChecker": true
  },
  "compileOnSave": false,
  "buildOnSave": false
}

1 ответ

  1. Необходимо указать, что во вложенных массивах всегда будет только два элемента, а не просто любое количество элементов:

    export const PostTypeMap = <[number, string][]> new Map([
        [0, 'Link'],
        [1, 'Status'],
        [2, 'Photo'],
        [3, 'Video'],
        [4, 'Offer'],
        [5, 'Unknown'],
        [6, 'Event']
    ]);