title: Derived typescript class type not accepted as it's own base type
body: <p>I have a bit of code that should work, but I realize now doesn't because the constructor signatures are different for the types.</p>
  
  <p>Example:</p>
  
  <pre><code>module test {
      export class A {
          constructor(a: string, b: string) { }
  
          static doSomething(a: typeof A): number { return 0; }
      }
  }
  
  module test {
      export class B extends A {
          constructor() { super("0", "1"); }
      }
  
      export class C extends B {
          static n = A.doSomething(C);
          x: number;
  
          constructor(c: C) { super(); }
      }
  }
  </code></pre>
  
  <p>'A.doSomething(C)' fails because the constructors are not compatible between the types (because one type value must properly represent the two types in case 'new' is used).  I know the REASON why, but is there no way (other than duck-typing) to specify a specific base type required?  If not, this is a big limitation in my books, and there needs to be a "baseof" besides just "typeof".  If duck-typing is required, then the answer is simply "no". ;)</p>