2

I have a <input type="number">. How can I tell TypeScript this? As it is below, TypeScript thinks that event.currentTarget.value is a string.

private handleChange = (event: React.MouseEvent<HTMLInputElement>) => {
    this.props.onChange(event.currentTarget.value);
};
user1283776
  • 19,640
  • 49
  • 136
  • 276

3 Answers3

4

The input type purpose is to serve as a kind of keyboard validation but the value will be a string. Please see this answer

So, as @user1283776 said: use event.currentTarget.valueAsNumber

Ian Vasco
  • 1,280
  • 13
  • 17
1

Coerce it to a number perhaps?

private handleChange = (event: React.MouseEvent<HTMLInputElement>) => {
    this.props.onChange(+event.currentTarget.value);
};
Siri
  • 1,117
  • 6
  • 13
0

Use event.currentTarget.valueAsNumber instead of event.currentTarget.value

user1283776
  • 19,640
  • 49
  • 136
  • 276