Как стать автором
Обновить

Комментарии 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);

Спасибо за примечание.

Согласен, так действительно будет лучше. В статье просто показан чуть более общий пример реализации, который можно скорректировать под свои нужды.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории