BBaysinger
BBaysinger

Reputation: 6877

Initialize a Map containing arrays in TypeScript

I want to make a Map where each member contains an array of strings. But how do I initialize and type it (in a single statement)?

(naively) I tried this:

  private _gridOptions:Map<string, Array<string>> = {"1": ["test"]};

and I get:

Module build failed: Error: /Users/*****/Work/dashboard/src/app/core/pg.service.ts (8,5): Type '{ "1": string[]; }' is not assignable to type 'Map<string, string[]>'.

Upvotes: 82

Views: 224425

Answers (2)

Manjunath Hadimani
Manjunath Hadimani

Reputation: 899

variableName: Map<string, string[]> = new Map();

To push elements into Map:

variableName.set("a", ["b", "c"]);

To get/retrieve elements from map:

variableName.get(key);// "a" in above case

Or directly use

variableName: Map<string, string[]> = new Map([['a', ['b', 'c']]]);

Upvotes: 9

GPicazo
GPicazo

Reputation: 6686

Per Mozilla's Map documentation, you can initialize as follows:

private _gridOptions:Map<string, Array<string>> = 
    new Map([
        ["1", ["test"]],
        ["2", ["test2"]]
    ]);

Upvotes: 174

Related Questions