Задать вопрос
@webjun

Как определить тип события?

Последнее время стараюсь писать на тс и часто сталкиваюсь с непониманием как описать события, вот например у меня есть инпут и на него я цепляю обработчик:

<input
            className="input"
            placeholder="Enter your film.."
            value={search}
            onChange={updateSearch}
          />

Далее я должен описать тип события:

const updateSearch = (event: React.KeyboardEvent<HTMLInputElement>) => {
    setSearch(event.target.value);
  };

Получаю ошибку:

Type '(event: React.KeyboardEvent<HTMLInputElement>) => void' is not assignable to type 'ChangeEventHandler<HTMLInputElement>'.
  Types of parameters 'event' and 'event' are incompatible.
    Type 'ChangeEvent<HTMLInputElement>' is missing the following properties from type 'KeyboardEvent<HTMLInputElement>': altKey, charCode, ctrlKey, code, and 11 more.

Может есть какие-то таблицы с типами ивентов или какие-то расширения для тс?
  • Вопрос задан
  • 1900 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@HealSpirit
const updateSearch: ChangeEventHandler<HTMLInputElement> = (event) => {};
или
const updateSearch = (event: ChangeEvent<HTMLInputElement>) => {};


Как это получить? Кликнуть с зажатым левым ctrl левой кнопки мыши в vscode на onChange
Попадем в типы реакта и увидим:
onChange?: ChangeEventHandler<T> | undefined;
Поймем, что ChangeEventHandler это функция, которая принимает в качестве параметра event с определенным типом (думаю пока этого достаточно, там потом можно потеряться что дальше происходит)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽