0

尝试分配事件处理程序字段时,我在 TS 文件中收到此错误。

Type '(event: MessageEvent<any>) => Promise<void>' is not assignable to type 'EventListener'.
  Types of parameters 'event' and 'evt' are incompatible.
    Type 'Event' is missing the following properties from type 'MessageEvent<any>': data, lastEventId, origin, ports, sourcets

我认为,由于MessageEvent扩展Event应该没有问题。

interface Listeners {
   listener1: EventListener
}

const listener1 = (event: MessageEvent): Promise<void> => {}

const listeners: Listeners = {
   listener1: listener1
}

这是一个 websocket 事件,即websocket.addEventListener(listeners.listener1)

但我也不确定只是说Event as MessageEvent是正确的做法

const listeners: Listeners = {
   listener1: (event: Event) => {
     listener1(event as MessageEvent);
   }
}
4

0 回答 0