title: Argument of type '...' is not assignable to parameter of type '...' TS 2345
body: <p>Given the following:</p>
  <pre class="lang-js prettyprint-override"><code>interface MyInterface {
    type: string;
  }
  
  let arr: object[] = [ {type: 'asdf'}, {type: 'qwerty'}]
  
  // Alphabetical sort
  arr.sort((a: MyInterface, b: MyInterface) =&gt; {
        if (a.type &lt; b.type) return -1;
        if (a.type &gt; b.type) return 1;
        return 0;
      });
  </code></pre>
  <p>Can someone help decipher the TS error:</p>
  <pre class="lang-js prettyprint-override"><code>// TypeScript Error
  [ts]
  Argument of type '(a: MyInterface, b: MyInterface) =&gt; 0 | 1 | -1' is not assignable to parameter of type '(a: object, b: object) =&gt; number'.
    Types of parameters 'a' and 'a' are incompatible.
      Type '{}' is missing the following properties from type 'MyInterface': type [2345]
  </code></pre>