to-type
The way typeof should be
Linux & OSX | Windows |
---|---|
|
|
A JavaScript implementation of angus-c's Fixing the JavaScript typeof operator.
Install
Node
npm install --save to-type
Web
Alternatively, you can install the npm module and reference the bundle within node_modules
Usage
// Remove this require line if you're using the web bundle (it's already bundled as "to-type")const to-type = ; ;//=> 'array' ;//=> 'regexp' ;//=> 'number' ;//=> 'string'
About
JavaScript's typeof
function sucks. It has returned vague values since 1997 and always will be due to backwards compatibility. It seems like nearly every call returns object
. Don't believe me?
typeof a: 4;//=> 'object' typeof 1 2 3;//=> 'object' typeof ;//=> 'object' typeof ;//=> 'object' typeof /a-z/;//=> 'object' typeof JSON;//=> 'object' typeof 4;//=> 'object' typeof 'abc';//=> 'object'
Did I hear you say that was not enough proof?
typeof true;//=> 'object'
Wait, you're still not convinced?
typeof Math;//=> 'object'
to-type
fixes these vague outputs by returning the types you expect to see.
API
toType(target)
target
Type: all types
returns
Type: string
Description: The return value is always lowercased.
More Examples
;//=> 'object' ;//=> 'date' ;//=>'math' ;//=> 'json' ;//=> 'number' ;//=> 'string' ;//=> 'boolean' ;//=> 'error' //es2015 and newer;//=> 'function' ;//=> 'symbol'
License
MIT © Dawson Botsford
If you like this, star it. If you want to follow me, follow me.