我正在尝试使用EventSourceTypescript ,但在使用命名事件时无法正确键入响应。
我试过
const evtSource = new EventSource('/my-url');
const parseMyEvent = (evt: Event) => {
const data: MyDataInterface = JSON.parse(evt.data);
console.log(data)
}
evtSource.addEventListener('my-event', parseMyEvent);
Run Code Online (Sandbox Code Playgroud)
失败,因为Event没有属性数据
const evtSource = new EventSource('/my-url');
const parseMyEvent = (evt: MessageEvent) => {
const data: MyDataInterface = JSON.parse(evt.data);
console.log(data)
}
evtSource.addEventListener('my-event', parseMyEvent);
Run Code Online (Sandbox Code Playgroud)
失败evtSource.addEventListener('my-event', parseMyEvent),并显示“没有与此调用匹配的过载。”。
我知道这MessageEvent是一个通用接口,但是我应该使用什么作为它的类型?
我正在使用 TS 3.5.3,所以我尝试安装外部类型,@types/eventsource但也没有成功(我知道,它是用于 polyfill EventSource 库,但我尝试过)
使用通用时,evtSource.onMessage = fn它可以正常工作,没有任何问题
应该可以在 TS 中输入 EventSource 事件的侦听器/响应,但是如何输入呢?