title: How to get generic factory to typecheck constructor of different classes?
body: <p>Given this example: </p>
  
  <pre><code>    class OneArgConstructorClass {
          constructor(name: string) {}
      }
      class TwoArgConstructorClass {
          constructor(name: string, age: number) {}
      }
      class Creator&lt;T&gt;
      {
          constructor(tConstructor: new(...args: any[])=&gt; T) {
              const it: T = new tConstructor();
          }
      }
  
      const e1 = new Creator&lt;OneArgConstructorClass&gt;(OneArgConstructorClass); 
      const e2 = new Creator&lt;OneArgConstructorClass&gt;(TwoArgConstructorClass); 
  </code></pre>
  
  <p>Why are e1 and e2 valid statements? Shouldn't typescript complain that it can't correctly construct e1/e2 without the proper number and type of arguments? Is it possible to make this sample properly typechecked against the passed in class constructors?</p>