
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
@magic/types
Advanced tools
typechecking utilities
0.1.0 and onwards uses esmodules, docs will be updated soon
npm install @magic/types
// single function import
import { isArray } from '@magic/types'
isArray([]) // true
import is from '@magic/types'
is.array([]) // true
// test a value for multiple types
is(ele, ...types)
// alias is.eq, isEq, test
// test if a value is not of a type
not(ele, ...types)
// alias is.neq, isNeq, isNot
type comparisons:
isArray([]) // true
// alias isArr, is.array, is.arr
isBoolean(true) // true
// alias isBool, is.boolean, is.bool
isDefined(undefined) //false
// alias isDef, is.defined, is.def
isUndefined(undefined) //false
// alias isUndef, is.undefined, is.undef
isFunction(() => {}) // true
// alias isFunc, isFn, is.function, is.func, is.fn
isNumber(1) // true
// alias isNum, is.number, is.num
isInteger(1) // true
// alias isInt, is.integer, is.int
isFloat(1.1) // true
// alias is.float
isObject({}) // true
// alias isObj, is.object, is.obj
isString('') // true
// alias isStr, is.string, is.str
isRGBAObject({ r: 1, g: 1, b: 1, a: 1 }) // true
// alias isRGBA, is.rgbaObject, is.rgba
isRGBObject
// alias isRGB, is.rgbObject, is.rgb
isHexColor('#333') // true
// alias isHex, is.hex, is.hexColor
isHexAlphaColor('#3333') // true
// alias isHexa, is.hexa, is.hexAlphaColor
isColor('#444') // true
// alias isCol, is.color, is.col
isDate(new Date()) // true
// alias isTime, is.date, is.time
isRegExp(/regexp/) // true
// alias isRegex, is.regexp, is.regExp, is.regex
isTruthy('true') // true
// alias is.truthy
isFalsy(0) // true
// alias is.falsy
isEmpty('') // true
// alias is.empty
isError(new Error('')) // true
// alias isErr, is.error, is.err
isIterable([]) // true
// alias is.iterable
isEmail('a@b.c') // true
// alias isMail, is.email, is.mail
isNull(null) // true
// alias isNil, is.nil, is.null
isUndefinedOrNull(undefined || null) // true
// alias is.undefinedOrNull, is.undefinedOrNil, is.undefOrNull, is.undefOrNil
isBuffer(new Buffer('test')) // true
// alias isBuff, is.buffer, is.buff
isPromise(new Promise()) // true
// alias is.promise, isThenable, isThen, is.thenable, is.then
// removed (for now?)!
isArguments(() => return arguments) // true
// alias isArgs, is.arguments, is.args
isUUID(uuid) // true
// alias is.uuid
testType(42, 'number') // true
// alias is.type
test(42, ['string', 'object']) // false
// alias is.types
isEq(42, 'number') // true
// alias is.eq
isNot = isNeq = is.not(42, 'number') // true
// alias is.neq
isDeepEqual([1, 2, 3], [1, 2, 3]) // true
// alias is.deep.eq, is.deep.equal
isDeepDifferent([1, 2, 3], [1, 2, 3]) // false
// alias is.deep.diff, is.deep.different
added Map, WeakMap, Set and WeakSet
use es6 modules
FIX: add module field to package.json
FIX: is.number no longer errors on node es6 modules and other weird objects
FAQs
typechecking library
We found that @magic/types demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.