Typescript 中没有 SubmitEvent 接口吗?

Vin*_*ler 10 dom-events typescript typescript-lib-dom

TypeScript 有不同的接口来映射 DOM 事件。(例如KeyboardEvent,MouseEvent等)。我们可以在这里找到它们。例如,当在事件侦听器中接收事件的有效负载时,它们在 Angular 中很方便。

我有点惊讶无法找到这里SubmitEvent描述的接口。

任何人都可以确认并解释原因吗?我希望 TypeScript 团队为每个 DOM 事件共享接口。

Fen*_*ton 8

随着时间的推移,这些确实会增加。目前它在标准中被标记为“仅单一实现”,因此当它被更好地采用时更有可能被添加。(我相信它现在在两个引擎中,所以标准将很快更新以反映这一点,我相信,就像在 Chromium 和 Gecko 中一样)。

您可以Event在所有情况下使用,除非您确实需要使用较新的submitter,这是唯一增加的内容SubmitEvent。

如果您确实需要submitter,您可以轻松创建您的SubmitEvent并调整HTMLFormElement使用它 - 如下所示。

interface SubmitEvent extends Event {
  submitter: HTMLElement; 
}

interface HTMLFormElement {
  onsubmit: (this: GlobalEventHandlers, ev: SubmitEvent) => any | null;
}
Run Code Online (Sandbox Code Playgroud)

更新库时,您会收到submitter已声明的警告,您可以删除临时接口。