--- /dev/null
+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;
+}