@feugene/mu
Version:
Helpful TS utilities without dependencies
29 lines (26 loc) • 592 B
text/typescript
import toFinite from './toFinite'
/**
* Converts `value` to an integer.
*
* **Note:** This method is loosely based on
* [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
*
* @example
*
* toInteger(3.2);
* // => 3
*
* toInteger(Number.MIN_VALUE);
* // => 0
*
* toInteger(Infinity);
* // => 1.7976931348623157e+308
*
* toInteger('3.2');
* // => 3
*/
export default function toInteger(value: any): number {
const result = toFinite(value)
let remainder = result % 1
return result === result ? (remainder ? result - remainder : result) : 0
}