TypeChecker for JavaScript/Typescript
Author : lessu
Description
A flexable type checker.
tested under typescript 2.3.4 and 2.4.2, 2.8.1; es5 is now supported
Installation
npm install ts-check --save
Test
mocha tests/index.js
Features
Flexable,easy-to-extend type checker for complex object.
example
TypeChecker.checkTypesku,"SetSkuItem[]",;
Update Log
-
v0.2.3
1.New feature added : now we can get failed log message by access
lastError
variable.2.Fix type error synax under typescript 2.8.1
Usage
import
import * as TypeChecker from "ts-checker";
Basic Type
Basic type include
Check basic types :
TypeCheker.checkTypeundefined,"undefined"; TypeCheker.checkTypenull,"any"; TypeCheker.checkType123,"number"; //Notice a string number is also a number type in weak Number mode;TypeCheker.checkType"123","number",,;
Check Array
any length
assertTypeCheker.checkType,"number[]";
check length
assertTypeCheker.checkType,"number[3]";assert!TypeCheker.checkType,"number[2]";
array array
assertTypeCheker.checkType,"number[1][3]";assertTypeCheker.checkType,"number[][3]";
Check function
Signature
boolean;
Usage
TypeCheker.checkType ,;
Nested Check
TypeCheker.checkType,; TypeCheker.checkType,;
Type array
The checked value can be string, number or {a:number};
TypeCheker.checkType,;
Customized types DefainedTypes
//definedTypes is a {customType => check} object.TypeCheker.checkTypevalue,type,definedTypes;
TypeCheker.checkType//to check,//type,//custom type,define >0 as a custom type , and can be used in typeChecker; //custom type can be nestedTypeCheker.checkType,,; //or a real life exampleTypeChecker.checkTypesku,"SetSkuItem[]",;
DefinedType With args
If a DefinedType is a function, args are supported;
Notice,Args will be convert to pure string ; every ,
is recognized as a splitor,
So DO NOT call like CustomType(a,"1,2,3"), It will convert to
assert! TypeCheker.checkType,any,;
Default defined type
Custom type can be add to default defaultDefinedChecker object; so that can be used any where.
TypeCheker.defaultDefinedChecker = ;assertTypeCheker.checkType,;assert!TypeCheker.checkType,;
License
MIT