zhangnaisong
2024-07-23 3baa9f07477107d66bc15611eb04c6927c56d27d
1
2
3
4
5
6
7
8
9
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;
}