oftype
Version:
A JavaScript module for checking variable runtime type
78 lines (56 loc) • 2.01 kB
Markdown
oftype
======
A JavaScript module for checking variable runtime type
[](https://travis-ci.org/liushuping/oftype.svg)
```javascript
var oftype = require('oftype');
var x = 123;
var y = true;
var z = /abc/;
var u = undefined;
var n = null;
function Obj() {
this.name = 'ABC';
}
var o = new Obj();
//check if variable x is of Number type.
oftype(123, Number); //true
//check if variable y is of Boolean type.
oftype(y, Boolean); //true
//check if variable z is of RegExp type.
oftype(z, RegExp); //true
//check if variable u is of undefined type.
//undefined is a type which has an only value undefined.
oftype(u, undefined); //true
//check if variable n is of null type.
//stricly, null is no actually a type, but here we treat
// it as a type just like how we treat undefined.
oftype(n, null); //true;
//check if variable o is of Obj type.
oftype(o, Obj); //true;
//check if variable o is of Object type.
oftype(o, Object); //true;
```
The signature of `oftype` is
```javascript
oftype(value, type, options);
```
`value`: could be any variable or value;
* `type`: could be any type identifier, e.g.: Number, Boolean, String, Date, RegExp, Array, Object and any other customized complex type.
* `options` is optional and has below hash values:
* `nullAsObject`: treat `null` value as `Object` type, so with this option testing `null` against `Object` type returns `true`. Default value of this option is `false`.
* `primitiveObject`: treat primitive object as primitive type. for example, testing `new Number(1)` against Number will return `false` when this option is set to `false`; but will return `true` when this option is set to `true`.
Alternatively, to avoid setting the options in every function call, the options could also be set globally:
```javascript
oftype.nullAsObject = true;
oftype.primitiveObject = true;
```
Make sure `mocha` is installed globally
```
npm test
```
MIT