Комментарии 2
Если хук useKeydown
обслуживает события клавиатуры, почему бы не донести до клиентского кода этот факт указанием типа события?
const useKeydown = (
key: string,
callback: (event: KeyboardEvent) => void,
) =>{/*...*/}
Такая сигнатура может помочь при написании callback-а - TypeScript сможет вывести типы параметров "по месту".
При этом определение handler следует тоже нацелить на тип события. Пусть TypeScript проверяет соответствие ожиданий обработчика типа события указанному по имени
const handler = (event: KeyboardEvent) => {
if (event.key === key) {
callbackRef.current(event);
}
}
document.addEventListener('keydown',handler);
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пишем собственные React-хуки на TypeScript и тестируем их с React Testing Library (часть 1)