Search code examples
javascriptreactjstypescript

event.target.value as a number?



const [data, Setdata] = useState<number[] >([]);
const [inputData, SetinputData] = useState<number>(0);
const [canAdd, SetcanAdd] = useState<boolean>(true);

  const numberField = (event: React.ChangeEvent<HTMLInputElement>) => {
    SetcanAdd(false)
    SetinputData(event.target.value);


    if(data.includes(event.target.value)){
      SetcanAdd(true)
    }

    // event.target.value Argument of type string is not assignable to parameter of type number
  };

  //jsx
    <input
        onChange={numberField }
        placeholder="add numbers"
        type="number"
        value={inputData}
     />

How can I set the event.target.value to be a number?

I know I can set everything to string, but I want it to be a number


Solution

  • Changed event.target.value to event.target.valueAsNumber.

    Works now!

    Edit: Lol, the answer was in my title