Skip to content

Commit f304ea6

Browse files
Merge pull request #81 from sandersn/add-EventListener-overloads-from-HtmlElement
Add add/removeEventListener overloads from HTMLElement
2 parents 483eb2f + 087a0e7 commit f304ea6

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/module-declaration.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ const generateModuleDeclaration = (module, index, API) => {
105105
moduleAPI.push(`${method}(event: '${domEvent.name}', listener: (event: ${eventType}) => void${method === 'addEventListener' ? ', useCapture?: boolean' : ''}): this;`)
106106
}
107107
})
108+
109+
// original overloads copied from HTMLElement, because they are not inherited
110+
moduleAPI.push(`addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;`)
111+
moduleAPI.push(`addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;`)
112+
moduleAPI.push(`removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;`)
113+
moduleAPI.push(`removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;`)
108114
}
109115

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

0 commit comments

Comments
 (0)