typecheckjs v1.2.0
The easiest and most powerful type checking node.js package yet! Did I mention it has powerful plugin support?
Installation
npm i --save typecheckjsUsage
The core plugin will recognize NaN, String, Number, Boolean,
Function, Array, Object, and every constructor function (like Date).
Use it like this:
const type = require('typecheckjs')
type(Number).is(1) // true
type(String).is(1) // true
type(Date).is(new Date()) // true
type(Number).is(NaN) // true
type(NaN).is(NaN) // true
type(NaN).is(1) // falseIf you want to accept multiple types, you can do so:
type(Number).or(String).is(1) // true
type(Number).or(String).is('a') // true
type(Number).or(String).is(true) // falseIt is also possible to check the contents of an array or object:
type(Array).of(Number).is([1,2,3]) // true
type(Array).of(Number).is([1,'a']) // false
type(Object).of(Number).is({a:1}) // true
type(Object).of({a: Number, b: String}).is({a: 1, b: 'b'}) //true
type(Array).of([Number, String]).is([1, 'a']) // trueCheck the tests in the repo for more info: link
Plugins
typecheckjs contains a well-crafted plugin system
that enables developers with specific needs to
easily code for type safety.
To use it in your code, first import the library and the plugins
you would like to use. Then configure typecheckjs to make use of them:
const Immutable = require('immutable')
const Type = require('typecheckjs')
const immutableplugin = require('typecheckjsimmutable') // In development
const type = Type.withPlugins([immutableplugin])Now you can use whatever tests this plugin provides, for example:
let map = Immutable.Map({a: 10})
type(Immutable.Map).of(Number).is(map) // trueTo develop a plugin, refer to pluginsguide.md