Package Exports
- wots
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (wots) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
why?
The library was written as a simple coding exercise, but then appeared useful to share 😉
how?
npm install --save wots
and then
// use as ES6 module
import wots from 'wots';
// use in NodeJs
var wots = require('wots');
// use as global variable via UnPKG
<script src="https://unpkg.com/wots"></script>
// ... then ...
if (wots(myNotAlwaysNumericVariable) === 'NaN') {
// do some stuff
// e.g. console.log('I cannot count on it')
} else if (wots(myNotAlwaysNumericVariable) === 'Infinity') {
// do some other stuff
// e.g. console.log('Please do not force me to use this value in a loop!')
}
what?
wots()
function returns reasonable type names for tested values:
description | input | result |
---|---|---|
null | null |
'null' |
undefined | undefined |
'undefined' |
strings | 'foo' |
'string' |
'' |
'string' |
|
['Hello', 'world!'].join(' ') |
'string' |
|
new String() |
'string' |
|
numbers | 5 |
'number' |
parseInt(42) |
'number' |
|
new Number('3') |
'number' |
|
NaN |
'NaN' |
|
Infinity |
'Infinity' |
|
1 / -0 |
'Infinity' |
|
boolean values | false |
'boolean' |
!!nonEmptyVariable |
'boolean' |
|
new Boolean('0') |
'boolean' |
|
regular expressions | /^test$/g |
'regexp' |
new RegExp('needle', 'i') |
'regexp' |
|
arrays | ['foo', 'bar', 'baz'] |
'array' |
new Array(10) |
'array' |
|
objects | { foo: 'bar'} |
'object' |
{} |
'object' |
|
new Object() |
'object' |
|
Object.create(null) |
'object |
|
functions | function () {} |
'function' |
new Function('return null') |
'function' |
|
date objects | new Date() |
'date' |
errors | new Error('error!') |
'error' |
new TypeError('type error!') |
'error' |
|
arguments objects | (function(){return arguments;})() |
'arguments' |
class constructors | new MyClass() |
'myclass' |
new Buffer() |
'buffer' |
|
new XMLHttpRequest() |
'xmlhttprequest' |
|
promises | new Promise(function() {}) |
'promise' |
Promise.resolve('data') |
'promise' |
|
Promise.reject(new Error('Oop!')) |
'promise' |
Note: for more examples see test file
Since version 0.2.0 the library also exposes static methods listed below:
wots.isNull()
wots.isUndefined()
wots.isString()
wots.isNumber()
wots.isNaN()
wots.isInfinity()
wots.isBoolean()
wots.isRegExp()
wots.isArray()
wots.isObject()
wots.isFunction()
wots.isDate()
wots.isError()
wots.isArguments()
wots.isPromise()
the name
wots
basically stands for what is
but is shorter 😉