toFinite()
toFinite(
value):number
Converts value to a finite number.
DEPRECATED
Use Number() with manual clamping for infinities instead.
Parameters
value: unknown
The value to convert.
Returns: number
The converted finite number.
See Also
Since
2.0.0
Also known as
toFinite (Lodash, es-toolkit) · ❌ (Remeda, Radashi, Ramda, Effect, Modern Dash, Antfu)
Example
// ❌ Deprecated approach
toFinite(3.7); // => 3.7
toFinite(Infinity); // => 1.7976931348623157e+308 (MAX_VALUE)
toFinite(-Infinity); // => -1.7976931348623157e+308
toFinite(NaN); // => 0
// ✅ Recommended approach
const n = Number(value);
Number.isFinite(n) ? n : (n > 0 ? Number.MAX_VALUE : (n < 0 ? -Number.MAX_VALUE : 0));
How it works?
Converts value to a finite number.
Deprecated: Use combination of Number() and bounds check.
Native Equivalent
// ❌ toFinite(value)
// ✅ Math.max(-Number.MAX_VALUE, Math.min(Number.MAX_VALUE, Number(value)))
Use Cases
Convert to finite 📌
Convert value to finite number, clamping infinities.
const n = Number(value);
const finite = Number.isFinite(n)
? n
: (n > 0 ? Number.MAX_VALUE : (n < 0 ? -Number.MAX_VALUE : 0));
Safe division result
Handle division that might produce infinity.
function safeDivide(a: number, b: number): number {
const result = a / b;
if (!Number.isFinite(result)) {
return result > 0 ? Number.MAX_VALUE : -Number.MAX_VALUE;
}
return result;
}