title: Use Map constructor in Typescript with initialized values
body: <p>The type definition for Map is as follows</p>
  
  <pre><code>interface MapConstructor {
      new &lt;K, V&gt;(): Map&lt;K, V&gt;;
      new &lt;K, V&gt;(iterable: IterableShim&lt;[K, V]&gt;): Map&lt;K, V&gt;;
      prototype: Map&lt;any, any&gt;;
  }
  </code></pre>
  
  <p>I want to use the 2nd constructor <code>new &lt;K, V&gt;(iterable: IterableShim&lt;[K, V]&gt;): Map&lt;K, V&gt;;</code></p>
  
  <p>I have a type I've defined <code>type ChangeMap = { [key: string]: Array&lt;string&gt; };</code> which is used as follows</p>
  
  <pre><code>let changeMap: ChangeMap = { A: ["Car", "Boat"], B: ["Plane", "Rocket"] };
  </code></pre>
  
  <p>I want to create a <code>Map&lt;number, ChangeMap&gt;</code> which I can do easily enough but I'm stuck as to how to structure the data I want to initialize my <code>Map</code> with</p>
  
  <pre><code>public changeOptions = new Map&lt;number, ChangeMap&gt;( ... what goes here ... ?)
  </code></pre>
  
  <p>Is this possible or do I need to initialize my <code>Map</code> without values and then call <code>changeOptions.set(1, changeMap);</code> to give it values?</p>
  
  <p>--- EDIT #1</p>
  
  <p>To answer @Paarth's question below, the <code>number</code> keys in the <code>changeOptions</code> <code>Map</code> are identifiers for other objects in the domain.</p>
  
  <p>Assume I have a class of Option defined as follows</p>
  
  <pre><code>class Option {
      id: number;
      name: string;
  }
  </code></pre>
  
  <p>The <code>id</code> of a given <code>Option</code> instance would be the key for the <code>changeOptions</code> <code>Map</code>. There are a limited predefined set of <code>Options</code> based on business rules for the domain. Assume for this question there are 3 <code>Option</code> instances with <code>id</code> values of <code>2, 10, 34</code>, so I want those to be the keys of the <code>changeOptions</code> <code>Map</code></p>