title: Function.prototype on method doesn't pass the this of the object
body: <p>First of all, sorry for my bad english.</p>
  
  <p>I want to create a prototype for Function class like :
  ( delay is an example )</p>
  
  <pre><code>import { delay } from 'lodash';
  
  export default function(
      this: (...args: any) =&gt; any,
      wait: number,
      ...params: [any]
    ): any {
    return delay(this, wait, ...params);
  };
  </code></pre>
  
  <p>I've applied it and when I call it from a function it's work well:</p>
  
  <pre><code>console.log('render');
  console.log.delay(1000, 'delayed render');
  </code></pre>
  
  <p>but when I call it from a method the this isn't pass :</p>
  
  <pre><code>class Test {
    constructor() {
      this.consoleLog('render');                      // Test {} render
      this.consoleLog.delay(1000, 'delayed render');  // undefined delayed render
    }
    consoleLog(text) {
      console.log(this, text);
    }
  }
  </code></pre>
  
  <p>How can I pass the 'this' cleanly ?</p>