title: Making a mixin of interfaces in Typescript
body: <p>I have a class with over 80 methods, and each method accepts an object containing some defined interface. </p>
  
  <pre class="lang-typescript prettyprint-override"><code>class Stuff {
     /* many more */
     getAccount(req: IAccount, callback: ICallback) {
        return this._call('getAccount', req, callback);
     }
  
     getIds(req: IIDs, callback: ICallback) {
        return this._call('getIds', req, callback);
     }
     /* many more */
  }
  </code></pre>
  
  <p>pretty 'boring' stuff, since it's just mapping to the underlaying <code>_call</code> method and making it type safe for each of the methods.</p>
  
  <p>But sometimes these <code>req</code> param objects are made up from 2 interfaces or more, and instead of creating another interface for each time there's an "awkward", like this:</p>
  
  <pre class="lang-typescript prettyprint-override"><code>export interface ILoled extends IAccount {
     loled: boolean;
  }
  
  export interface IRofloled extends ILoled {
     rofled: boolean;
  }
  
  class Stuff {
    getLols(req: ILoled){
    }
  
    getRofls(req: IRofloled){
    }
  }
  </code></pre>
  
  <p>is there any way I can just put it as an "inline" mixin of interfaces inside the method parameter list? like (which obviously don't work):</p>
  
  <pre class="lang-typescript prettyprint-override"><code>class Stuff {
    getMoreStuff(req: &lt;{} extends IAccount, ITime&gt;) {
    }
  }
  </code></pre>