/** * Whether a value is a Number or numeric string. * * Taken from RxJs 6.x (licensed under Apache 2.0) * This function was removed from RxJs 7.x onwards. * * @param val: any value * @returns whether this value is numeric */ 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 !Array.isArray(val) && (val - parseFloat(val) + 1) >= 0; }