IS (is-simple)
Quick, easy, and lightweight type checking
Why?
Type checking should be simple. This library does that, in as simple of a way that I can think of. It's easy to get tripped up with some of the neuances of JavaScript (such as typeof null === "object"
, or isNaN("wtf") === true
), and this library aims to prevent that.
Installation
Node.js
npm install is-simple
In the browser
<script src="is.js"/>
Usage
// simple type checkingconsole; // trueconsole; // falseconsole; // true // complex type checking { thisx = x; thisy = y;} var point = 2 4;var fakePoint = x: 2 y: 4; console; // trueconsole; // false // even more complex type checkingconsole; // trueconsole; // true
Using your own functions
You can easily extend IS
by adding your own functions. These functions can also be passed in to is.arrayOf
.
is { return x % 2 === 0;}; console; // trueconsole; // true
Matching Basic JavaScript Types
NOTE: typeof null === "object"
, but IS
considers null to not be an object
matches | is.array | is.number | is.boolean | is.string | is.fn | is.object |
---|---|---|---|---|---|---|
null, undefined | no | no | no | no | no | no |
NaN, Infinity | no | yes | no | no | no | no |
0, 2, -5 | no | yes | no | no | no | no |
0.5, Math.PI | no | yes | no | no | no | no |
true, false | no | no | yes | no | no | no |
"", "hello" | no | no | no | yes | no | no |
[], [1, 2, 3] | yes | no | no | no | no | yes |
{} | no | no | no | no | no | yes |
function () {}, console, window, Object | no | no | no | no | yes | yes |
Special Types
NOTE: we treat ""
as defined
matches | is.defined | is.realNumber | is.integer |
---|---|---|---|
null, undefined | no | no | no |
NaN, Infinity | no | no | no |
0, 2, -5 | yes | yes | yes |
0.5, Math.PI | yes | yes | no |
true, false | yes | no | no |
"", "hello" | yes | no | no |
[], [1, 2, 3] | yes | no | no |
{} | yes | no | no |
function () {}, console, window, Object | yes | no | no |
Specific Checks
is.nan
is only true if passed in NaN
.
is.undefined
is only true if passed in undefined
.
Testing
npm install -g mocha
npm test
License
MIT