So I am talking about weirdness in terms of types in JS.
The typeof operator returns the type in a string format of the unevaluated operand.
For example:
typeof({}) => will return 'object'
typeof(5) => will return 'number'
Well, this is not weird.
Let me show you something weird,
typeof(new Date()) => will return 'object'
typeof([‘Max’, ‘Carl’, ‘Tom’]) => will return 'object'
typeof(/ab+c/i) => will return 'object'
So it may create problems when you have to do some kind of validations on a type basis.
But with xtype.js there is a reliable solution for it.
Npm Available:
npm install xtype
Also, you can use it in the browser by downloading it.
Let's have a look at how we can solve this type of validations reliably.
xtype.type(new Date()) // date
xtype.type([‘Max’, ‘Carl’, ‘Tom’]) // array
xtype.type({ name: ‘Max’, age: 20 }) // object
xtype.type(/ab+c/i) // regexp
xtype.type(new Error(‘Error’)) // error
Also, by passing the value directly we can get more details about type.
xtype.type(-1.1) // number
// more details please:
xtype(-1.1) // negative_float
xtype(1) // positive_integer
xtype('') // empty_string
xtype(' ') // whitespace
xtype(["Max", "Carl"]) // multi_elem_array
xtype(["Max"]) // single_elem_array
Isn't that amazing?
And it’s only 7kB in size.
There is so much more to discover in the official documentation.
Comments
Post a Comment