title: Typescript Function/Object parameters
body: <p>Why is typescript ES6 not detecting that objects are not functions?</p>
  
  <pre><code>find: (collection: string, query: object, sortQuery = {}, cb?: Function)  =&gt; {
      socketManager.call('find', collection, query, sortQuery, cb);
  }
  </code></pre>
  
  <p>Based off this function, you would assume that this would fail:</p>
  
  <pre><code>this._services._socket.methods.find('vendors', {type: 'repair'}, (errVen, resVen) =&gt; {}
  </code></pre>
  
  <p>Since there is no sortQuery object but instead a callback function.  This is not giving me any type of error and means that typescript is allowing the callback as the object type.  </p>
  
  <p>How do I ensure this results in an error?</p>