Aller au contenu principal

isNumber()

isNumber(value): value is number

Checks if a value is a number.

remarque

Includes NaN and Infinity. Use Number.isFinite() for finite numbers only.


Parameters

value: unknown

The value to check.


Returns: value is number

true if the value is a number, false otherwise.


See Also

isFinite


Since

1.0.0


Example

isNumber(42);       // => true
isNumber(3.14); // => true
isNumber(NaN); // => true
isNumber(Infinity); // => true
isNumber('42'); // => false

How it works?

Type guard that checks if a value is a number (excluding NaN).

Type Narrowing

Common Checks

ValueResult
123 true
0 true
-1.5 true
Infinity true
NaN false
'123' false
new Number(123) false (boxed)

Note

Unlike typeof x === 'number', this guard excludes NaN for safer number handling.


Use Cases

Validate numeric inputs 📌

Ensure a value is a number before calculations. Essential for form handling and data validation.

if (isNumber(input) && !isNaN(input)) {
const total = input + tax;
}

Filter valid numbers from mixed data

Extract numeric values from arrays containing mixed types.

const values = [1, "two", 3, null, 4];
const numbers = values.filter(isNumber);
// numbers: number[] = [1, 3, 4]