title: Type error in typescript casting a class that has static variables when using strictFunctionTypes
body: <p>I just turned on <code>strictFunctionTypes</code> for my codebase and I got this error I can't quite wrap my head around.</p>
  
  <p>I have an interface that is meant to be a generic presentation of a class (<code>ConstructorFunction</code> in the example below).<br>
  If I cast a class with static variables, I get a type error as shown below.
  If I cast a class without static variables, everything is OK.</p>
  
  <p>Why is this happening? </p>
  
  <p>Code example below:</p>
  
  <pre><code>interface ConstructorFunction{
      new ( ...args: Array&lt;Object&gt;);
  }
  
  class HasStatic {
      prop: string;
  
      private static readonly bar = "foobar";
  
      constructor(prop: string) {
          this.prop = prop;
      }
  }
  
  class NoStatic {
      prop: string;
  
      constructor(prop: string) {
  
      }
  }
  
  // ERROR: 
  //Types of parameters 'props' and 'args' are incompatible.
  // Type 'Object' is not comparable to type 'string'
  HasStatic as ConstructorFunction 
  
  // OK
  NoStatic as ConstructorFunction
  </code></pre>