One of the most annoying things I find about the JavaScript language is the lack of support for strict typing when declaring function variable arguments. Because of this I’m forced to litter my code with conditions that contain typeof
and instanceof
to type check each argument.
This is my attempt to resolve this madness.
This package can be easily installed using:
$ bower install datatype-fu
$ npm install datatype-fu
var fu = require('datatype-fu').fu; // NodeJS usage
// standard types
var doSomething = fu(
['Array', 'Boolean', 'Function', 'Number', 'Object', 'String', 'undefined'],
function(arr, bool, func, num, obj, str, und) {
// do something with the values
}
);
doSomething(
['bucket1', 'bucket2', 'bucket3'],
true,
function() {},
1234567890,
{ key: 'value' },
'Hello World',
undefined
);
// Wildcard and conditional types
var doSomething = fu(
['*', 'Array|Boolean|undefined'],
function(any, cond) {
// do something with the values
}
);
General test cases have been created on jsPerf to measure fu'd operations across supported web browsers.
For feedback, bug reports, or other comments, feel free to contact me at: devel at mbrooks dot info
This package is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.
DataType-FU is provided under the terms of the MIT license