| import { isArray } from './isArray'; | |
| export function isNumeric(val: any): val is number | string { | |
| // parseFloat NaNs numeric-cast false positives (null|true|false|"") | |
| // ...but misinterprets leading-number strings, particularly hex literals ("0x...") | |
| // subtraction forces infinities to NaN | |
| // adding 1 corrects loss of precision from parseFloat (#15100) | |
| return !isArray(val) && (val - parseFloat(val) + 1) >= 0; | |
| } |