+-
关于 ts 没有与此调用匹配的重载的问题

本人刚开始使用 ts,所以遇到一下问题,请赐教。
对 EventTarget 的 addEventListener 方法进行改写

const originAddEventListener = window.EventTarget.prototype.addEventListener
window.EventTarget.prototype.addEventListener = function (
  type: string,
  listener: EventListenerOrEventListenerObject,
  options?: boolean | AddEventListenerOpts,
  useCapture?: boolean,
  wantsUntrusted?: boolean): any {
  // eslint-disable-next-line no-useless-catch
  try {
    return originAddEventListener.call(this, type, listener, options, useCapture, wantsUntrusted)
  } catch (error) {
    throw error
  }
}

然后再对改写后的 addEventListener 进行调用时

window.addEventListener('error', (
    e: any,
    url: string,
    lineNo: number,
    colNo: number,
    error: Error): any => {
        // TODO
    }, true)

报错:

没有与此调用匹配的重载。
  第 1 个重载(共 2 个),“(type: "error", listener: (this: Window, ev: ErrorEvent) => any, options?: boolean | AddEventListenerOptions): void”,出现以下错误。
    类型“(e: any, url: string, lineNo: number, colNo: number, error: Error) => void”的参数不能赋给类型“(this: Window, ev: ErrorEvent) => any”的参数。
  第 2 个重载(共 2 个),“(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void”,出现以下错误。
    类型“(e: any, url: string, lineNo: number, colNo: number, error: Error) => void”的参数不能赋给类型“EventListenerOrEventListenerObject”的参数。
      不能将类型“(e: any, url: string, lineNo: number, colNo: number, error: Error) => void”分配给类型“EventListener”。

请问,代码错在什么地方? 请赐教。