title: Typescript index signature class extends class
body: <p>I try build block editor with Typescript. My problem is as follows...</p>
  <p>I have this:</p>
  <pre><code>class A {...}
  
  class B extends A {...}
  class C extends A {...}
  class D {...}
  
  interface AConstructable {
    new (): A;
  }
  interface AElements {
    [name: string]: AConstructable
  }
  enter code here
  const test: AElements = {
    blockB: B // ??? this takes B, but have type A :/ 
  }
  </code></pre>
  <p>I need this:</p>
  <pre><code>const test: AElements = {
    blockB: B // ok!
    blockC: C // error
  }
  
  const x1 = new test['blockB'](...) // return B class instance
  </code></pre>
  <p>I tried different ways the above is closest but I don't know how to bite it. Is it possible?</p>