ee-types
Easy and reliable type detection
Supported by joinbox.com, your swiss node.js & javascript agency :rocket:
Compatibility
For a version supporting older browsers and node version please use ee-types version < 3.0.0.
Compatible with node 10+ (--experimental-modules
flag) and browsers supporting es modules.
Importing
node
import types from 'ee-types';
API
Be aware that the different object types like Maps, Promises and so on are not
detected as objects but as their respective type. If you need to detect them as
objects please use the types.someObject()
method instead of the types.object()
method.
Explicitly test for a type.
types.array([])
Get the type of some variable
types(/[a-z]+/gi)
Supported Types
- string
- number
- boolean
- array
- intArray
- floatArray
- object
- function
- symbol
- date
- regexp
- error
- undefined
- buffer
- null
- arrayBuffer
- map
- weakMap
- set
- weakSet
- dataView
- float32Array
- float64Array
- int8Array
- int16Array
- int32Array
- uInt8Array
- uInt16Array
- uInt32Array
- uInt8ClampedArray
- generator
- promise
- someObject
Object Types
Since many of the types defined by javascript are just special
objects that also can be treated as normal objects ee-types has
a bunch of methods that allow you to handle that correctly.
For example, Map
is an object, or a custom class where you
define a getter that returns a specific name for your object:
const X = class {
get [Symbol.toStringTag]() {
return 'AQL query';;
}
};
console.log(Object.prototype.toString.call(new X()));
Check for a classic object
types.object({});
types.object(new Map());
types({})
types(new Map())
Check any type of object
types.someObject({});
types.someObject(new Map());
types(new Map())
Examples
var types = require('ee-types');
types.string('nope');
types.strign(new String('yeah'));
types(2)
types([]])
types(new Array()])
types(new Int8Array()])
types.promise(Promise.all())