What is kind-of?
The kind-of npm package is a utility library that allows developers to check the type of a given value in JavaScript. It provides a simple API to determine whether a value is a string, number, array, object, function, and other JavaScript types. This can be particularly useful for type checking and validation in applications where type safety is important.
What are kind-of's main functionalities?
Type checking for primitives
This feature allows you to check the type of primitive values such as numbers, strings, and booleans.
"use strict"; const kindOf = require('kind-of'); console.log(kindOf(1)); // 'number' console.log(kindOf('hello')); // 'string' console.log(kindOf(true)); // 'boolean'
Type checking for objects
This feature allows you to check the type of object-based values such as plain objects, arrays, and regular expressions.
"use strict"; const kindOf = require('kind-of'); console.log(kindOf({})); // 'object' console.log(kindOf([])); // 'array' console.log(kindOf(/foo/)); // 'regexp'
Type checking for functions and undefined
This feature allows you to check the type of functions and the undefined value.
"use strict"; const kindOf = require('kind-of'); console.log(kindOf(function () {})); // 'function' console.log(kindOf(undefined)); // 'undefined'
Type checking for null and dates
This feature allows you to check the type of null values and date objects.
"use strict"; const kindOf = require('kind-of'); console.log(kindOf(null)); // 'null' console.log(kindOf(new Date())); // 'date'
Other packages similar to kind-of
type-check
The 'type-check' package offers a similar functionality to 'kind-of' by allowing type assertions and checks. It provides a mini language to specify the types of values and can validate against those specifications.
is
The 'is' package is another utility library that provides type checking functions. It has a wider range of type checks available, including checks for specific JavaScript environments like the browser or Node.js.
check-types
The 'check-types' package provides a set of predicates for type checking. It has a fluent API and includes additional checks for min/max values, empty strings, and arrays, which are not directly available in 'kind-of'.