type-component
Version:
Cross-browser type assertions (less broken typeof)
29 lines (24 loc) • 728 B
JavaScript
var type = require('..');
function assert(expected, val) {
if (expected != type(val)) {
throw new Error('expected "' + expected + '" for ' + val + ' but got "' + type(val) + '"');
}
}
function Foo(){}
assert('object', {});
assert('object', new Foo);
assert('object', new Boolean(true));
assert('object', new Number(123));
assert('object', new String('whoop'));
assert('number', 12);
assert('string', "test");
assert('date', new Date);
assert('boolean', true);
assert('boolean', false);
assert('null', null);
assert('undefined', undefined);
assert('array', []);
assert('regexp', /asdf/);
assert('regexp', new RegExp('weee'));
assert('function', function(){});
assert('arguments', (function(){ return arguments })());