我正在使用Angular2 + TypeScript,当我尝试执行此代码时:

var event = new Event('check');
window.dispatchEvent(event);

此代码导致下一个错误:



我已经尝试了所有方法,发现可以使用:
var event = new CustomEvent('check');

问题是任何IE不支持CustomEvent。

另一件有效的方法是:
var event = new Event('CustomEvent');
event.initCustomEvent('check');

问题是不建议使用InitCustomEvent。

我有什么办法可以避免这种类型的错误?也许在 typescript 中的某个地方异常(exception)?还是使用不被弃用且适用于IE Edge的任何代码?

最佳答案

找到了解决方案。
对于某些TypeScript设置,仅当我们插入第二个参数时,新事件才是'Event'的类型,例如以下示例:

window.addEventListener('check', e => console.log(e.type))

var event = new Event('check', { bubbles: true, cancelable: false })
document.body.dispatchEvent(event) // event will buble up to window

关于javascript - dispatchEvent导致错误,无法在 'dispatchEvent'上执行 'EventTarget':参数1的类型不是 'Event',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41920266/

10-16 09:57