Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / exotic   js

Repository URL to install this package:

Version: 2.0.8 

/ src / types / primitive / number / check / isNumber.ts

import toStringTag from '../../../kind/toObjStringTag'
import isNumberPrimitive from './isNumberPrimitive'

/**
 * @since 3.0.0
 * @memberOf is
 *
 * @param {*} x value
 * @return {boolean} isNumber
 *
 * @func
 * @name isNumber
 * @extends numberPrimitive
 * @variation also returns true for new Number object
 *
 * {@link https://github.com/infernojs/inferno/blob/master/packages/inferno-shared/src/index.ts#L23 inferno-isnumber}
 * {@link http://stackoverflow.com/questions/18082/validate-decimal-numbers-in-javascript-isnumeric stack-overflow-isnumber}
 * {@link https://github.com/gcanti/tcomb/blob/master/lib/isNumber.js tcomb-isnumber}
 * @see {@link stack-overflow-isnumber}
 * @see {@link tcomb-isnumber}
 * @see {@link inferno-isnumber}
 * @see is/real
 *
 * @alternate !isNaN(parseFloat(n)) && isFinite(n)
 *
 * @example
 *
 *  isNumber(1)
 *  //=> true
 *  isNumber(new Number(1))
 *  //=> true
 *  isNumber(Number(1))
 *  //=> true
 *  isNumber(NaN)
 *  //=> true
 *
 *  isNumber(null)
 *  //=> false
 *  isNumber(undefined)
 *  //=> false
 *  isNumber(void 0)
 *  //=> false
 *  isNumber({})
 *  //=> false
 *  isNumber('')
 *  //=> false
 *  isNumber(false)
 *  //=> false
 *
 */
const isNumber = (x: any): x is number =>
  isNumberPrimitive(x) || toStringTag(x) === '[object Number]'

export { isNumber }
export default isNumber