TypeScript — событие onChange принимает только ЛЮБЫЕ

#javascript #typescript #events #onchange #handle

Вопрос:

Я изучаю TS, и я не понимаю, почему событие, когда выполняется onChange, принимает только «любое».

Я попытался изменить событие, равное реакции.Обработчик изменений, но все равно не работает:

   const onNameChange = (e: React.ChangeEventHandler<HTMLInputElement>) => {
    setField({ ...field, name: e.currentTarget.value });
  }; 

Я думаю, что каким-то образом мое событие должно быть равно моему интерфейсу «Подсчет». Следуйте полному коду:

 import React, { useState } from "react";

interface FieldProps {
  name: string;
}

export const TextField: React.FC = () => {
  const [field, setField] = useState<FieldProps>({ name: "" });

  console.log(field);

  const onNameChange = (e: any) => {
    setField({ ...field, name: e.currentTarget.value });
  };

  return (
    <div>
      <input
        type="text"
        onChange={onNameChange}
        name="name"
        value={field.name}
      />
    </div>
  );
}; 

Ответ №1:

e это не обработчик, это событие. onNameChange является ли обработчиком

   const onNameChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {
    setField({ ...field, name: e.currentTarget.value });
  };