README
@alloc/is
Runtime type checking for TypeScript (inspired by @sindresorhus/is)
- isomorphic (no DOM or NodeJS types)
- type guards (for type narrowing)
- fully tested (each possible type is tested on every type checker)
Usage
First, do yarn add is@npm:@alloc/is if you never use the npm CLI.
Otherwise, you need to import @alloc/is instead of is.
import { is } from 'is'
//
// Get the type name of a value.
// Object types are camel case.
//
is.what(0) // 'number'
is.what({}) // 'Object'
//
// Check the constructor of a value.
//
is.type(0, Number) // true
is.type({}, Object) // true
is.type([], Object) // false
//
// Find a constructor in a value's prototype chain.
//
is.kind([], Object) // true
//
// Check if the value is a specific type.
//
is.number(0) // true
is.array([]) // true
See the tests for expected behavior. They are very readable, just search for test(
to jump between the tests of each is. function.
API
is.what(value)Get the type name of a valueis.type(value, constructor)Check the constructor of a valueis.kind(value, constructor)Find a constructor in a value's prototype chainis.array(value)Same asArray.isArrayis.asyncFunction(value)is.asyncIterable(value)Returns true for objects returned bySymbol.asyncIteratorfunctionsis.bigint(value)is.boolean(value)is.class(value)Returns true forclassfunctions (but not transpiled classes)is.date(value)is.defined(value)The opposite ofis.undefinedis.emptyObject(value)Returns true for plain objects with no keysis.error(value)is.generator(value)Returns true for objects returned by generator functionsis.generatorFunction(value)is.function(value)is.infinite(value)is.integer(value)is.iterable(value)Returns true for objects returned bySymbol.iteratorfunctionsis.map(value)is.nan(value)Same asNumber.isNaNis.null(value)is.number(value)Returns true for any number (but neverNaN)is.object(value)Returns true for any object or function (but nevernull)is.plainObject(value)Returns true for objects created by{},new Object, orObject.create(null)is.promise(value)is.promiseLike(value)Returns true for objects with athenmethodis.regExp(value)is.safeInteger(value)Same asNumber.isSafeIntegeris.set(value)is.string(value)is.symbol(value)is.undefined(value)is.weakMap(value)is.weakSet(value)