Проблема связана с тем, что parseInt может сломаться.
В случае, если вы не можете успешно проанализировать ваше «строковое» входное значение, вы получите ошибку. Вы можете добавить запасной вариант к текущему значению или сбросить до 0 или избежать вызова setNum в случае сбоя вашего parseInt.
import React, { useState } from 'react';
const App: React.FC = () => {
const [num, setNum] = useState(0);
return (
<input
type="number"
onChange={e => setNum(parseInt(e.target.value) || num)}
/>
);
};
export default App;