title: Declaring the type of a deeply nested Map in Typescript
body: <p>I cannot seem to figure out how to declare a deeply nested (recursive) Map in typescript in a generic way. As a starting point I am simply trying to convert the following Javascript example to Typescript</p>
  <pre><code>const o1 = new Map([
    ['a', 'A']
  ])
  const o2 = new Map([
    ['b1', 'B'],
    ['b2', o1]
  ])
  
  const o3 = new Map([
    ['c1', 'C'],
    ['c2', o2]
  ])
  
  console.log('o3', o3)
  </code></pre>
  <p>Thanks</p>