number/isNum.ts

/** @module Number */

import { equalsNaN } from './equalsNaN'

/**
 * Checks is value is a number.
 * @example
 * isInt(1)
 * // Returns true
 * @example
 * isInt(NaN)
 * // Returns false
 * @example
 * isInt('1')
 * // Returns false ( because it's a string )
 * @function
 * @param {*} val - value to check if is a number
 * @return {Boolean} T/F - if value is a number
 */
export const isNum = <T = number>(val: any): val is T =>
  typeof val === 'number' && !equalsNaN(val)