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 / isFinite.ts

import isNumber from './isNumberPrimitive'

/**
 * @desc is not infinity, and not nan, but this parses a float and is slower
 * @since 0.0.1
 * @version 5.0.0
 * @memberOf is
 *
 * @param n value to check
 *
 * {@link https://tc39.github.io/ecma262/#sec-isfinite-number emca-isfinite}
 * {@link https://github.com/lodash/lodash/blob/master/toFinite.js lodash-to-finite}
 * {@link http://stackoverflow.com/questions/18082/validate-decimal-numbers-in-javascript-isnumeric stack-overflow-isnumeric}
 * @see {@link emca-isfinite}
 * @see {@link stack-overflow-isnumeric}
 * @see {@link lodash-to-finite}
 * @see is/numberish
 * @see is/infinity
 *
 * @example
 *    isFinite(100)      //=> true
 *    isFinite('100')    //=> true
 *    isFinite(Infinity) //=> false
 */
export default function isFiniteNumber(x: number | string): x is number {
  return (
    isNumber(x) || (!isNaN(parseFloat(x as string)) && isFinite(x as number))
  )
}