js-subtype is a lightweight library that allows you to determine JavaScript subtypes, making it easy to identify the exact type of an object (like Array, Date, etc.).
- Supports multiple subtypes (Array,Date,Map,RegExp, etc.).
- Lightweight and easy to use.
- Zero dependencies.
- Works in both Node.js and modern browsers.
Install using npm:
npm install js-subtypeOr with yarn:
yarn add js-subtypeHere’s a quick example of how to use js-subtype:
const { getType } = require("js-subtype");
console.log(getType([1, 2, 3])); // Output: "Array"
console.log(getType(new Date())); // Output: "Date"
console.log(getType(/regex/)); // Output: "RegExp"Returns a string representing the subtype of the given value.
- Parameters:
- value: Any JavaScript value.
 
- Returns: The string subtype (Array,Date,Map, etc.).
Use js-subtype to validate inputs or types precisely in your applications:
function validateInput(input) {
  if (getType(input) !== "Array") {
    throw new Error("Input must be an array.");
  }
  // Additional logic...
}| Type | Subtype | Description | 
|---|---|---|
| undefined | undefined | Undefined value. | 
| boolean | boolean | Boolean value ( trueorfalse). | 
| number | integer | Integer number. | 
| number | float | Floating-point number. | 
| string | string | Text string. | 
| object | null | Null value. | 
| object | array | Array (list of elements). | 
| object | date | Dateobject. | 
| object | regexp | Regular expression. | 
| object | map | Mapobject. | 
| object | set | Setobject. | 
| object | weakmap | WeakMapobject. | 
| object | weakset | WeakSetobject. | 
| object | error | Errorobject. | 
| object | promise | Promiseobject. | 
| object | object | Generic object. | 
| function | function | Function. | 
| symbol | symbol | Symbol ( Symbol). | 
| bigint | bigint | Large integer ( BigInt). | 
Determine the exact native type of an object, such as Map or Set:
console.log(getType(new Map())); // Output: "Map"
console.log(getType(new Set())); // Output: "Set"This project is licensed under the MIT License.