isFiniteNumber function
Checks whether a value is a finite number: neither NaN nor an infinity.
ts
import { isFiniteNumber } from 'utils';Signature
ts
export function isFiniteNumber(value: unknown): value is numberParameters
| Name | Description |
|---|---|
value | The value to check. |
Returns
true for a finite number (never for a numeric string).
Example
ts
isFiniteNumber(1.5); // true
isFiniteNumber(Infinity); // falseTests
Line coverage: 100 %.
- ✅ checks 0 as true
- ✅ checks -1.5 as true
- ✅ checks Infinity as false
- ✅ checks NaN as false
- ✅ checks 1 as false
Source
src/guard/is-finite-number.ts (on GitHub)
Source code
ts
/**
* Checks whether a value is a finite number: neither `NaN` nor an infinity.
*
* @param value - The value to check.
* @returns `true` for a finite number (never for a numeric string).
* @example
* isFiniteNumber(1.5); // true
* isFiniteNumber(Infinity); // false
*/
export function isFiniteNumber(value: unknown): value is number {
return Number.isFinite(value);
}Test file
ts
import { isFiniteNumber } from './is-finite-number';
describe(isFiniteNumber, () => {
it.for([
[0, true],
[-1.5, true],
[Infinity, false],
[NaN, false],
['1', false],
] as const)('checks %s as %s', ([value, expected]) => {
expect(isFiniteNumber(value)).toBe(expected);
});
});Keywords: is, finite, number, guards, function