@MishaXXL

Как правильно задать тип события мыши?

Если задать event: Event, то element.addEventListener работает корректно, но в функции вылетает ошибка
function scroll(event: Event) {
   const pos = event.pageX // Property 'pageY' does not exist on type 'Event'.
}


Если поменять на React.MouseEvent, то ошибка типизации в функции scrollпропадает
function scroll(event: React.MouseEvent) { ... }

Но появляется ошибка в добавлении слушателя element.addEventListener('mousedown', scroll)
No overload matches this call.
  Overload 1 of 2, '(type: keyof ElementEventMap, listener: (this: Element, ev: Event)
  • Вопрос задан
  • 92 просмотра
Решения вопроса 2
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
React.MouseEvent - это события реакта, их нельзя передавать в addEventListener, только в ноды реакта.
Event - это наиболее обобщенный тип события.
Вам нужен тип MouseEvent, в нём будет соответствующее свойство.
Ну и сам element должен иметь тип HTMLElement или производные по идее.
Ответ написан
@luxurypluxury
const divRef = useRef<HTMLDivElement | null>(null);


function scroll(event: MouseEvent<HTMLDivElement>) { ... }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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