title: How to tell typescript about functions "mixed in" from another module?
body: <p>I have this situation:</p>
  <pre><code>// Application.ts
  import MicroEvent from 'microevent-github'
  
  class Application {
    // stuff...
    something() {
      // It is also saying &quot;trigger&quot; is undefined,
      // but it IS defined, MicroEvent defined it.
      this.trigger('foo')
    }
  }
  
  // get the `bind`, `unbind`, and other methods from MicroEvent
  MicroEvent.mixin(Application)
  
  const app = new Application()
  
  const handleFoo = () =&gt; console.log('foo')
  
  // try to use them, get the squiggly errors saying
  // `bind` doesn't exist on Application, etc.
  application.bind('foo', handleFoo)
  application.unbind('foo', handleFoo)
  </code></pre>
  <p>I have &quot;mixed in&quot; the <code>MicroEvent</code> to my application, which adds some methods to the object. However, VSCode is complaining that <code>bind</code> and <code>unbind</code> don't exist on the Application instance... But it does, how do I tell typescript to accept this?</p>
  <p>Adding this doesn't work:</p>
  <pre><code>type Application = {
    bind: (eventType: string, callback: () =&gt; void) =&gt; void
    unbind: (eventType: string, callback: () =&gt; void) =&gt; void
    trigger: (eventType: string) =&gt; void
  }
  </code></pre>