es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
27 lines (26 loc) • 826 B
JavaScript
import { getTag } from "../_internal/getTag.mjs";
import "../_internal/tags.mjs";
import { isObjectLike } from "./isObjectLike.mjs";
//#region src/compat/predicate/isNumber.ts
/**
* Checks if a given value is a number.
*
* This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `number`.
*
* @param value The value to check if it is a number.
* @returns Returns `true` if `value` is a number, else `false`.
*
* @example
* const value1 = 123;
* const value2 = 'abc';
* const value3 = true;
*
* console.log(isNumber(value1)); // true
* console.log(isNumber(value2)); // false
* console.log(isNumber(value3)); // false
*/
function isNumber(value) {
return typeof value === "number" || isObjectLike(value) && getTag(value) === "[object Number]";
}
//#endregion
export { isNumber };