В Typescript нет интерфейса SubmitEvent? - PullRequest
0 голосов
/ 26 мая 2020

Typescript имеет разные интерфейсы, отображающие события DOM. (например, KeyboardEvent, MouseEvent и т. д. c.). Их можно найти здесь https://github.com/microsoft/TypeScript/blob/master/lib/lib.dom.d.ts. Например, они удобны в Angular при получении полезной нагрузки события в прослушивателе событий.

Я был немного удивлен, что не смог найти интерфейс для SubmitEvent, который описан здесь: https://developer.mozilla.org/en-US/docs/Web/API/SubmitEvent

Кто-нибудь может подтвердить и объяснить почему? Я ожидал, что команда Typescript будет делиться интерфейсами для каждого события dom ...

Спасибо

1 Ответ

1 голос
/ 26 мая 2020

Они, как правило, со временем добавляются. На данный момент в стандарте он помечен как «только одна реализация», поэтому вероятность его добавления будет выше, когда он получит большее распространение. (Я полагаю, что сейчас он находится в двух движках, поэтому стандарт будет обновлен, чтобы отразить это, я полагаю, как это будет в Chromium и Gecko).

Вы можете использовать Event во всех случаях, если вам действительно не нужно использовать более новый submitter, который является единственным дополнением, которое SubmitEvent вносит в таблицу.

Если вам требуется требуется submitter, вы можете легко создать ваш SubmitEvent и настройте HTMLFormElement, чтобы использовать его, как показано ниже.

interface SubmitEvent extends Event {
  submitter: HTMLElement; 
}

interface HTMLFormElement {
  onsubmit: (this: GlobalEventHandlers, ev: SubmitEvent) => any | null;
}

Когда библиотека будет обновлена, вы будете предупреждены, что submitter уже объявлен, и вы можете удалить свой временный интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...