Skip to content

Commit

Permalink
Merge pull request #81 from sandersn/add-EventListener-overloads-from…
Browse files Browse the repository at this point in the history
…-HtmlElement

Add add/removeEventListener overloads from HTMLElement
  • Loading branch information
MarshallOfSound committed Nov 4, 2017
2 parents 483eb2f + 087a0e7 commit f304ea6
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lib/module-declaration.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,12 @@ const generateModuleDeclaration = (module, index, API) => {
moduleAPI.push(`${method}(event: '${domEvent.name}', listener: (event: ${eventType}) => void${method === 'addEventListener' ? ', useCapture?: boolean' : ''}): this;`)
}
})

// original overloads copied from HTMLElement, because they are not inherited
moduleAPI.push(`addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;`)
moduleAPI.push(`addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;`)
moduleAPI.push(`removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;`)
moduleAPI.push(`removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;`)
}

const returnsThis = (moduleMethod) => ['on', 'once', 'removeAllListeners', 'removeListener'].includes(moduleMethod.name)
Expand Down

0 comments on commit f304ea6

Please sign in to comment.