There is .valueAsNumber. input.value returns a string, regardless of the input type. Making the return type dynamic would be worse, imo.