我扩展了HTMLElement
原型以添加多个eventListener
。
我的方法
declare global {
HTMLElement {
addEventListeners(): any // with a 's'
}
}
type CallBackFunction<T = void> = () => T
HTMLElement.prototype.addEventListeners() = function(events: Array<HTMLElementEventMap>, callback: CallBackFunction) {
events.forEach((event) => {
this.addEventListener(event, callback)
})
}
但是上面的代码给了我:
Type '(events: Array<keyof HTMLElementEventMap>, callback: CallBackFunction) => void' is not assignable to type '() => any'
Object is possibly 'undefined'
我第一次尝试
type CallBackFunction<T = any> = () => T
也
declare global {
HTMLElement {
addEventListeners(): void // with a 's'
}
}
也解决了第二个错误,我甚至把检查,但仍然没有运气!
if (typeof this !== 'undefined') {
this.addEventListener(event, callback)
}
2条答案
按热度按时间jyztefdp1#
我想这就是你要找的
用法
cwxwcias2#
他们期望函数不返回任何内容(void)。因此,尝试以下操作