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.isArray
is.asyncFunction(value)
is.asyncIterable(value)
Returns true for objects returned bySymbol.asyncIterator
functionsis.bigint(value)
is.boolean(value)
is.class(value)
Returns true forclass
functions (but not transpiled classes)is.date(value)
is.defined(value)
The opposite ofis.undefined
is.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.iterator
functionsis.map(value)
is.nan(value)
Same asNumber.isNaN
is.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 athen
methodis.regExp(value)
is.safeInteger(value)
Same asNumber.isSafeInteger
is.set(value)
is.string(value)
is.symbol(value)
is.undefined(value)
is.weakMap(value)
is.weakSet(value)