Extended JavaScript Type Validator
npm install typecheck-extendedJavaScript 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
booleanfunctionnumberstringsymbolundefined- 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.
``javascript
/*
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-extended
*/
>> 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
`
: 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).
$3
name must be received AND be string. `javascript
function SayHi(name) {
TypeCheck(name, 'string');
return (Hi ${name}!);
}
`
$3
name can be undefined or null
If name is received, it must be string. `javascript
function SayHi2(name) {
TypeCheck(name, 'string', false);
if (name) {
return (Hi ${name}!);
}
return ("Hi, I'm typecheck-extended. What's your name?");
}
`$3
uuid must be received AND be string.
color must be received AND be red, green, or blue.
`javascript
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.