Как правильно обрабатывать addEventListener в TypeScript?

Здравствуйте.

Переписываю js на ts.
Сложно даются addEventListener.
К примеру yt могу в таком виде переписать на ts:
window.addEventListener('keydown', function (e) {
	if (e.key === "Escape") {
       
	}
});

Ругается, что нет такого свойства у e.key, пробовал объявить тип объекта как KeyboardEvent или просто Event, не помогает.
Смог получить желаемый результат только таким методом:
window.onkeydown = (e: KeyboardEvent) => {
            if (e.key === "Escape") {

            }
        };

Тут как то можно использовать addEventListener?

Вторая проблема с функцией маски для телефона. На js я слушаю несколько событий, и в функции получаю keyCode нажатой клавиши:
elem.addEventListener("input", mask);
   elem.addEventListener("focus", mask);
   elem.addEventListener("blur", mask);

 function mask(event) {
        const keyCode = event.keyCode;
       //...
}

В ts не могу получить keyCode, такого свойства не существует какой бы я тип не задавал event.

Как правильно обрабатывать такие события?
  • Вопрос задан
  • 1665 просмотров
Пригласить эксперта
Ответы на вопрос 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
function mask(event: Event & { keyCode: number })
А лучше вынести конструкцию в отдельный тип чтобы переиспользовать.
Ответ написан
@OneFive
React.js <3
Возможно старая версия typescript, если вставить в плейграунд
window.addEventListener('keydown', function (e) {
  if (e.key === "Escape") {
       
  }
});

то ошибок нет.
Для использования в
function mask(event) {

нужно указать тип:
function mask(event: KeyboardEvent) {
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы