Skip to content

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 number

Parameters ​

NameDescription
valueThe value to check.

Returns ​

true for a finite number (never for a numeric string).

Example ​

ts
isFiniteNumber(1.5); // true
isFiniteNumber(Infinity); // false

Tests ​

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

Generated from the JSDoc of the sources.