EasyType

Target
- To determine the type of a variable in JavaScript
Install
npm i -S @easyprogram/easytype
Usage
0. Basic
const EasyType = require("@easyprogram/easytype");
EasyType.type(null)
EasyType.type(undefined)
EasyType.type(false)
EasyType.type(0)
EasyType.type(BigInt(123))
EasyType.type('hello world')
EasyType.type([])
EasyType.type({})
EasyType.type(function () {})
EasyType.type(new Set())
EasyType.type(new WeakSet())
EasyType.type(new Map())
EasyType.type(new WeakMap())
EasyType.type(Symbol(null))
EasyType.type(/hello world/gi)
EasyType.type(new Promise(() => {}))
EasyType.type(Math)
EasyType.type(JSON)
EasyType.type(new Error())
EasyType.type(new Int8Array())
EasyType.type(new Uint8Array())
EasyType.type(new Uint8ClampedArray())
EasyType.type(new Int16Array())
EasyType.type(new Uint16Array())
EasyType.type(new Int32Array())
EasyType.type(new Uint32Array())
EasyType.type(new Float32Array())
EasyType.type(new Float64Array())
EasyType.type(new BigInt64Array())
EasyType.type(new BigUint64Array())
EasyType.type(new ArrayBuffer())
EasyType.type(new DataView(new ArrayBuffer()))
EasyType.type(new Date())
EasyType.type(global)
EasyType.type(window)
1. Primitive
const EasyType = require("@easyprogram/easytype");
EasyType.isNull(null);
EasyType.isUndefined(undefined);
EasyType.isBoolean(true);
EasyType.isBoolean(false);
EasyType.isNumber(0);
EasyType.isNumber(NaN);
EasyType.isString("");
EasyType.isString("hello world");
EasyType.isSymbol(Symbol());
EasyType.isSymbol(Symbol("hello world"));
EasyType.isBigInt(BigInt(123456));
EasyType.isPrimitive(undefined);
EasyType.isPrimitive(null);
EasyType.isPrimitive(true);
EasyType.isPrimitive(false);
EasyType.isPrimitive(0);
EasyType.isPrimitive(NaN);
EasyType.isPrimitive("");
EasyType.isPrimitive(Symbol(123456));
EasyType.isPrimitive(BigInt(1234567894561234569887));
2. Number
const EasyType = require("@easyprogram/easytype");
EasyType.isNormalNumber(NaN);
EasyType.isNormalNumber(Infinity);
EasyType.isNormalNumber(-Infinity);
EasyType.isNormalNumber(1.7976931348623157e+308);
EasyType.isNormalNumber(9007199254740991);
EasyType.isNormalNumber(Math.pow(2, -52));
EasyType.isNormalNumber(12345);
EasyType.isNormalNumber(-12345);
EasyType.isNormalNumber(0.999999);
EasyType.isSpecialNumber(NaN);
EasyType.isSpecialNumber(Infinity);
EasyType.isSpecialNumber(-Infinity);
EasyType.isSpecialNumber(1.7976931348623157e+308);
EasyType.isSpecialNumber(9007199254740991);
EasyType.isSpecialNumber(Math.pow(2, -52));
EasyType.isSpecialNumber(12345);
EasyType.isSpecialNumber(-12345);
EasyType.isSpecialNumber(0.999999);
EasyType.isNaN(NaN);
EasyType.isInfinity(Infinity);
EasyType.isInfinity(-Infinity);
EasyType.isPositiveInfinity(Infinity);
EasyType.isNegativeInfinity(-Infinity);
EasyType.isMaxValue(1.7976931348623157e+308);
EasyType.isMaxSafeInteger(9007199254740991);
EasyType.isEpsilon(Math.pow(2, -52));
3. Function
const EasyType = require("@easyprogram/easytype");
EasyType.isFunction(() => {});
EasyType.isFunction(function () {});
EasyType.isArrowFunction(() => {});
EasyType.isArrowFunction(function () {});
EasyType.isNormalFunction(() => {});
EasyType.isNormalFunction(function () {});
4. Array
const EasyType = require("@easyprogram/easytype");
EasyType.isArrayOfNumber([]);
EasyType.isArrayOfNumber(['0', '1', '2']);
EasyType.isArrayOfNumber(['0', true, false]);
EasyType.isArrayOfNumber([1, 2, 3]);
EasyType.isArrayOfString([]);
EasyType.isArrayOfString([1, 2, 3]);
EasyType.isArrayOfString(['0', true, false]);
EasyType.isArrayOfString(['0', '1', '2']);
EasyType.isArrayOfBoolean([]);
EasyType.isArrayOfBoolean([1, 2, 3]);
EasyType.isArrayOfBoolean(['0', '1', '2']);
EasyType.isArrayOfBoolean([true, true, false]);
EasyType.isArrayOfNull([]);
EasyType.isArrayOfNull([1, 2, 3]);
EasyType.isArrayOfNull(['0', '1', '2']);
EasyType.isArrayOfNull([true, true, false]);
EasyType.isArrayOfNull([null, null, null]);
EasyType.isArrayOfUndefined([]);
EasyType.isArrayOfUndefined([1, 2, 3]);
EasyType.isArrayOfUndefined(['0', '1', '2']);
EasyType.isArrayOfUndefined([null, null, null]);
EasyType.isArrayOfUndefined([undefined, undefined, undefined]);
EasyType.isArrayOfSymbol([]);
EasyType.isArrayOfSymbol([1, 2, 3]);
EasyType.isArrayOfSymbol(['0', '1', '2']);
EasyType.isArrayOfSymbol([null, null, null]);
EasyType.isArrayOfSymbol([Symbol(null), Symbol(undefined), Symbol(0), Symbol('hello'), Symbol(true)]);
EasyType.isArrayOfBigInt([]);
EasyType.isArrayOfBigInt([1, 2, 3]);
EasyType.isArrayOfBigInt(['0', '1', '2']);
EasyType.isArrayOfBigInt([null, null, null]);
EasyType.isArrayOfBigInt([BigInt(null), BigInt(undefined), BigInt(0), BigInt('hello'), BigInt(true)]);
EasyType.isArrayOfFalsity([]);
EasyType.isArrayOfFalsity([1, 2, 3]);
EasyType.isArrayOfFalsity(['0', '1', '2']);
EasyType.isArrayOfFalsity([null, null, null]);
EasyType.isArrayOfFalsity([undefined, undefined, undefined]);
EasyType.isArrayOfFalsity([false, false, false]);
EasyType.isArrayOfFalsity([0, 0, 0]);
EasyType.isArrayOfFalsity(['', '', '']);
EasyType.isArrayOfFalsity([NaN, NaN, NaN]);
EasyType.isArrayOfFalsity([null, undefined, false, 0, NaN, '']);
EasyType.isArrayOfPrimitive([]);
EasyType.isArrayOfPrimitive([1, 2, 3]);
EasyType.isArrayOfPrimitive(['0', '1', '2']);
EasyType.isArrayOfPrimitive([null, null, null]);
EasyType.isArrayOfPrimitive([undefined]);
EasyType.isArrayOfPrimitive([false, false, false]);
EasyType.isArrayOfPrimitive([0, 0, 0]);
EasyType.isArrayOfPrimitive(['', BigInt(0), '']);
EasyType.isArrayOfPrimitive([Symbol(0), NaN, NaN]);
EasyType.isArrayOfPrimitive([0, NaN, '']);
EasyType.isArrayOf([null], EasyType.types.NULL);
EasyType.isArrayOf([undefined], EasyType.types.UNDEFINED);
EasyType.isArrayOf([false], EasyType.types.BOOLEAN);
EasyType.isArrayOf([0], EasyType.types.NUMBER);
EasyType.isArrayOf(['hello world'], EasyType.types.STRING);
EasyType.isArrayOf([[]], EasyType.types.ARRAY);
EasyType.isArrayOf([{}], EasyType.types.OBJECT);
EasyType.isArrayOf([() => {}], EasyType.types.FUNCTION);
EasyType.isArrayOf([new Set()], EasyType.types.SET);
EasyType.isArrayOf([new WeakSet()], EasyType.types.WEAKSET);
EasyType.isArrayOf([new Map()], EasyType.types.MAP);
EasyType.isArrayOf([Symbol(0)], EasyType.types.SYMBOL);
EasyType.isArrayOf([/hello/gi], EasyType.types.REGEXP);
EasyType.isArrayOf([new Promise(() => {})], EasyType.types.PROMISE);
EasyType.isArrayOf([Math], EasyType.types.MATH);
EasyType.isArrayOf([JSON], EasyType.types.JSON);
EasyType.isArrayOf([new Error()], EasyType.types.ERROR);
EasyType.isArrayOf([new Int8Array()], EasyType.types.INT8ARRAY);
EasyType.isArrayOf([new Uint8Array()], EasyType.types.UINT8ARRAY);
EasyType.isArrayOf([new Uint8ClampedArray()], EasyType.types.UINT8CLAMPEDARRAY);
EasyType.isArrayOf([new Int16Array()], EasyType.types.INT16ARRAY);
EasyType.isArrayOf([new Uint16Array()], EasyType.types.UINT16ARRAY);
EasyType.isArrayOf([new Int32Array()], EasyType.types.INT32ARRAY);
EasyType.isArrayOf([new Uint32Array()], EasyType.types.UINT32ARRAY);
EasyType.isArrayOf([new Float32Array()], EasyType.types.FLOAT32ARRAY);
EasyType.isArrayOf([new Float64Array()], EasyType.types.FLOAT64ARRAY);
EasyType.isArrayOf([new BigInt64Array()], EasyType.types.BIGINT64ARRAY);
EasyType.isArrayOf([new BigUint64Array()], EasyType.types.BIGUINT64ARRAY);
EasyType.isArrayOf([new ArrayBuffer()], EasyType.types.ARRAYBUFFER);
EasyType.isArrayOf([new DataView(new ArrayBuffer())], EasyType.types.DATAVIEW);
EasyType.isArrayOf([new Date()], EasyType.types.DATE);
EasyType.isArrayOf([global], EasyType.types.GLOBAL);
EasyType.isArrayOf([window], EasyType.types.WINDOW);
5. Object
const EasyType = require("@easyprogram/easytype");
EasyType.isObject({});
EasyType.isObject({ "key": "hello world" });
EasyType.isEmptyObject({});
EasyType.isObjectOf({}, { key: EasyType.types.NULL });
EasyType.isObjectOf({ key: EasyType.types.NULL }, {});
EasyType.isObjectOf({}, {});
EasyType.isObjectOf({ key: null }, { key: EasyType.types.NULL };
EasyType.isObjectOf({ key: undefined }, { key: EasyType.types.UNDEFINED });
EasyType.isObjectOf({ key: false }, { key: EasyType.types.BOOLEAN });
EasyType.isObjectOf({ key: 0 }, { key: EasyType.types.NUMBER });
EasyType.isObjectOf({ key: 'hello world' }, { key: EasyType.types.STRING });
EasyType.isObjectOf({ key: [] }, { key: EasyType.types.ARRAY });
EasyType.isObjectOf({ key: {} }, { key: EasyType.types.OBJECT });
EasyType.isObjectOf({ key: () => {} }, { key: EasyType.types.FUNCTION });
EasyType.isObjectOf({ key: new Set() }, { key: EasyType.types.SET });
EasyType.isObjectOf({ key: new WeakSet() }, { key: EasyType.types.WEAKSET });
EasyType.isObjectOf({ key: new Map() }, { key: EasyType.types.MAP });
EasyType.isObjectOf({ key: Symbol(0) }, { key: EasyType.types.SYMBOL });
EasyType.isObjectOf({ key: /hello/gi }, { key: EasyType.types.REGEXP });
EasyType.isObjectOf({ key: new Promise(() => {}) }, { key: EasyType.types.PROMISE });
EasyType.isObjectOf({ key: Math }, { key: EasyType.types.MATH });
EasyType.isObjectOf({ key: JSON }, { key: EasyType.types.JSON });
EasyType.isObjectOf({ key: new Error() }, { key: EasyType.types.ERROR });
EasyType.isObjectOf({ key: new Int8Array() }, { key: EasyType.types.INT8ARRAY });
EasyType.isObjectOf({ key: new Uint8Array() }, { key: EasyType.types.UINT8ARRAY });
EasyType.isObjectOf({ key: new Uint8ClampedArray() }, { key: EasyType.types.UINT8CLAMPEDARRAY });
EasyType.isObjectOf({ key: new Int16Array() }, { key: EasyType.types.INT16ARRAY });
EasyType.isObjectOf({ key: new Uint16Array() }, { key: EasyType.types.UINT16ARRAY });
EasyType.isObjectOf({ key: new Int32Array() }, { key: EasyType.types.INT32ARRAY });
EasyType.isObjectOf({ key: new Uint32Array() }, { key: EasyType.types.UINT32ARRAY });
EasyType.isObjectOf({ key: new Float32Array() }, { key: EasyType.types.FLOAT32ARRAY });
EasyType.isObjectOf({ key: new Float64Array() }, { key: EasyType.types.FLOAT64ARRAY });
EasyType.isObjectOf({ key: new BigInt64Array() }, { key: EasyType.types.BIGINT64ARRAY });
EasyType.isObjectOf({ key: new BigUint64Array() }, { key: EasyType.types.BIGUINT64ARRAY });
EasyType.isObjectOf({ key: new ArrayBuffer() }, { key: EasyType.types.ARRAYBUFFER });
EasyType.isObjectOf({ key: new DataView(new ArrayBuffer()) }, { key: EasyType.types.DATAVIEW });
EasyType.isObjectOf({ key: new Date() }, { key: EasyType.types.DATE });
EasyType.isObjectOf({ key: global }, { key: EasyType.types.GLOBAL });
EasyType.isObjectOf({ key: window }, { key: EasyType.types.WINDOW });
6. Iterable
const EasyType = require("@easyprogram/easytype");
EasyType.isArray([]);
EasyType.isArray([1,2,3,4,5]);
EasyType.isEmptyArray([]);
EasyType.isMap(new Map());
EasyType.isSet(new Set());
EasyType.isIterable([]);
EasyType.isIterable(new Set());
EasyType.isIterable(new Map());
7. Falsity
const EasyType = require("@easyprogram/easytype");
EasyType.isFalsity(undefined);
EasyType.isFalsity(null);
EasyType.isFalsity(false);
EasyType.isFalsity(0);
EasyType.isFalsity("");
EasyType.isFalsity(NaN);
8. WeakType
const EasyType = require("@easyprogram/easytype");
EasyType.isWeakSet(new WeakSet());
EasyType.isWeakMap(new WeakMap());
EasyType.isWeakType(new WeakMap());
EasyType.isWeakType(new WeakSet());
9. Error
const EasyType = require("@easyprogram/easytype");
EasyType.isError(new Error());
EasyType.isError(new EvalError())
EasyType.isError(new RangeError())
EasyType.isError(new ReferenceError())
EasyType.isError(new SyntaxError())
EasyType.isError(new TypeError())
EasyType.isError(new URIError())
10. Binary
const EasyType = require("@easyprogram/easytype");
EasyType.isArrayBuffer(new ArrayBuffer());
EasyType.isDataView(new DataView(new ArrayBuffer()));
EasyType.isInt8Array(new Int8Array());
EasyType.isUint8Array(new Uint8Array());
EasyType.isUint8ClampedArray(new Uint8ClampedArray());
EasyType.isInt16Array(new Int16Array());
EasyType.isUint16Array(new Uint16Array());
EasyType.isInt32Array(new Int32Array());
EasyType.isUint32Array(new Uint32Array());
EasyType.isFloat32Array(new Float32Array());
EasyType.isFloat64Array(new Float64Array());
EasyType.isBigInt64Array(new BigInt64Array());
EasyType.isBigUint64Array(new BigUint64Array());
EasyType.isTypedArray(new Int8Array());
EasyType.isTypedArray(new Uint8Array());
EasyType.isTypedArray(new Uint8ClampedArray());
EasyType.isTypedArray(new Int16Array());
EasyType.isTypedArray(new Uint16Array());
EasyType.isTypedArray(new Int32Array());
EasyType.isTypedArray(new Uint32Array());
EasyType.isTypedArray(new Float32Array());
EasyType.isTypedArray(new Float64Array());
EasyType.isTypedArray(new BigInt64Array());
EasyType.isTypedArray(new BigUint64Array());
11. Global
const EasyType = require("@easyprogram/easytype");
EasyType.isGlobal(global);
EasyType.isWindow(window);
12. Other
const EasyType = require("@easyprogram/easytype");
EasyType.isMath(Math);
EasyType.isRegExp(/hello world/g);
EasyType.isPromise(new Promise(function () {}));
EasyType.isJSON(JSON);
EasyType.isDate(new Date());