Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

typecheck-extended · GitHub license npm version Coverage Status CI Status PRs Welcome

JavaScript type checker with extended types. Validates all built-in types. Additionally adds support for enums and makes an easier distinction between array and object.


npm i typecheck-extended

Available Types

Standard Types

The following native JS types are supported as-is:

  • boolean
  • function
  • number
  • string
  • symbol
  • undefined

Extended Types

  • array: Arrays only. (ex. ['a', 'b', 'c'])
  • enum: Adds enum support.
  • object: Non-array objects only. (ex. { a: 1, b: 2, c: 3 })

In javascript, arrays have a typeof "object". typecheck-extended excludes arrays from an "object" type check.

  Standard Javascript
>> typeof ['River Tam', 'Mal Reynolds']; // Returns "object"
>> typeof { name: 'Kaylee Frye' }; // Returns "object"
>> Array.isArray(['River Tam', 'Mal Reynolds']); // Returns true
>> Array.isArray({ name: 'Kaylee Frye' }); // Returns false

>> TypeCheck(['River Tam', 'Mal Reynolds'], 'array'); // Returns true
>> TypeCheck({ name: 'Kaylee Frye' }, 'array'); // Throws error
>> TypeCheck({ name: 'Kaylee Frye' }, 'object'); // Returns true
>> TypeCheck(['River Tam', 'Mal Reynolds'], 'object'); // Throws error

Example Usage


  • parameter: Any - The parameter to have its type validated
  • type: String - Expected type of parameter. Limited to one of the Available Types listed above.
  • required: Bool - Defaults to true. (Optional).
  • format: Array - List of valid enums. (Optional).

Ex. Required String:

name must be received AND be string.

function SayHi(name) {
  TypeCheck(name, 'string');
  return (`Hi ${name}!`);

Ex. Optional String:

name can be undefined or null If name is received, it must be string.

function SayHi2(name) {
  TypeCheck(name, 'string', false);
  if (name) {
      return (`Hi ${name}!`);
  return ("Hi, I'm typecheck-extended. What's your name?");

Ex. Required Enum:

uuid must be received AND be string.
color must be received AND be red, green, or blue.

const availableColors = ['red', 'green', 'blue'];
function SaveColorValue(uuid, color) {
  TypeCheck(uuid, 'string');
  TypeCheck(color, 'enum', true, availableColors);
  SaveToDb(uuid, color);

typecheck-extended uses Semantic Versioning. | Copyright © 2018 Chris Kilpatrick. Released under MIT License.


V. 1.0.4: JavaScript Type Enforcement




No packages published
You can’t perform that action at this time.