我有这段代码:
let event = new Event('sumanload', {
value: 'foo'
});
window.dispatchEvent(event);
这是错误:
我想要做的是将自定义数据作为事件数据传递。有没有办法做到这一点?现在,如果你包含一个未知的属性,TypeScript会抱怨。
答案 0 :(得分:0)
您可以尝试使用CustomEvent
而不是Event
对象。自定义事件对象特别允许您将detail
属性添加到在构造期间作为第二个参数传递的初始化对象。
let event = new CustomEvent('sumanload', {
detail: 'foo'
});
window.dispatchEvent(event);
其中detail
可以是任何数据类型,包括object。
我过去已成功将自定义属性直接附加到CustomEvent对象(如event.value = 'foo'
中所述),但我不知道TypeScript是否允许您这样做。
如果您需要支持IE等旧版浏览器,请检查上面的MDN链接以获取polyfill。