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
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
| Value | Result |
|---|---|
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]
true
false