title: "No overload matches this call" for removeEventListener and addEventListener
body: <p>I have a keydown handler function defined like so:</p>
  
  <pre><code> handleOnKeyDown = (e: React.KeyboardEvent&lt;HTMLButtonElement&gt;) =&gt; {
      if (key.isEscape(e.key)) {
        stopEvent(e);
        this.props.handleClose(e);
      }
    }
  </code></pre>
  
  <p>However in another part of my code where this function is passed to <code>removeEventListener</code> and <code>addEventListener</code>:</p>
  
  <pre><code>componentDidMount () {
      const { current: modal } = this.modalRef;
      if (modal) {
        modal.addEventListener('keydown', this.handleOnKeyDown);
      }
    }
  
    componentWillUnmount () {
      const { current: modal } = this.modalRef;
      if (modal) {
        modal.removeEventListener('keydown', this.handleOnKeyDown);
      }
    }
  
  </code></pre>
  
  <p>I get the following Typescript error:</p>
  
  <pre class="lang-none prettyprint-override"><code>No overload matches this call.
    Overload 1 of 2, '(type: "keydown", listener: (this: HTMLDivElement, ev: KeyboardEvent) =&gt; any, options?: boolean | EventListenerOptions | undefined): void', gave the following error.
      Argument of type '(e: React.KeyboardEvent&lt;HTMLButtonElement&gt;) =&gt; void' is not assignable to parameter of type '(this: HTMLDivElement, ev: KeyboardEvent) =&gt; any'.
        Types of parameters 'e' and 'ev' are incompatible.
          Type 'KeyboardEvent' is missing the following properties from type 'KeyboardEvent&lt;HTMLButtonElement&gt;': locale, nativeEvent, isDefaultPrevented, isPropagationStopped, persist
    Overload 2 of 2, '(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void', gave the following error.
      Argument of type '(e: React.KeyboardEvent&lt;HTMLButtonElement&gt;) =&gt; void' is not assignable to parameter of type 'EventListenerOrEventListenerObject'.
        Type '(e: React.KeyboardEvent&lt;HTMLButtonElement&gt;) =&gt; void' is not assignable to type 'EventListener'.
          Types of parameters 'e' and 'evt' are incompatible.
            Type 'Event' is missing the following properties from type 'KeyboardEvent&lt;HTMLButtonElement&gt;': altKey, charCode, ctrlKey, getModifierState, and 12 more.ts(2769)
  </code></pre>
  
  <p>What would be work around for this?</p>