Skip to content

igorzg/typed-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TYPED JS Build Status

Support

Dynamic type checker for nodejs >= v4.0.0 It support only class syntax in order to have type checking all classes must be inherited from Type class

Type Inheritance

All class members must be defined in constructor super call otherwise if you try to assign member to initialized object Type object will throw an type error. After object initialization object is prevented from extension

class User extends Type {
    constructor(name, password) {
        super({
            username: Type.STRING,
            password: Type.STRING
        });
        this.username = name;
        this.password = password;
    }
    getUserName() {
        return this.username;
    }
    setUserName(user) {
        this.username = user;
    }
}
var user = new User('Igor', 'Ivanovic');
user.getUserName(); // Igor
user.setUserName(1) // Throws type error
user.assign = 1 // Throws type error , all members must be defined at super call with proper type
// Predefined function inside of type
user.destroy(); // clear all references to initialized object

Constants

Type.OBJECT = "object";
Type.STRING = "string";
Type.ARRAY = "array";
Type.REGEX = "regexp";
Type.NUMBER = "number";
Type.BOOLEAN = "boolean";
Type.FUNCTION = "function";
Type.DATE = "date";
Type.UNDEFINED = "undefined";
Type.NULL = "null";

Type Functions

Type.isNull(value)

Check if value is nullable

Type.isNull(null); // true

Type.isObject(value)

Check if value is object

Type.isObject({}); // true
Type.isObject([]); // true

Type.isRegExp(value)

Check if value is regular expression object

Type.isRegExp({}); // false
Type.isRegExp(/abc/i); // true

Type.isDate(value)

Check if value is date object

Type.isDate({}); // false
Type.isDate(new Date); // true

Type.isFunction(value)

Check if value is function object

Type.isFunction({}); // false
Type.isFunction(function () {}); // true

Type.isArray(value)

Check if value is array object

Type.isArray({}); // false
Type.isArray([]); // true

Type.isNumber(value)

Check if value is number

Type.isNumber(1); // true
Type.isNumber(NaN); // true
Type.isNumber([]); // false

Type.isString(value)

Check if value is string

Type.isString(1); // false
Type.isString(""); // true

Type.isBoolean(value)

Check if value is boolean

Type.isBoolean(1); // false
Type.isBoolean(true); // true

Type.isUndefined(value)

Check if value is undefined

Type.isUndefined(null); // false
Type.isUndefined(undefined); // true

Type.isInitialized(value)

Check if value is initialized, null is not considered as initialized

Type.isInitialized(null); // false
Type.isInitialized(undefined); // false

Type.getType(value)

Get type of value

Type.getType(null); // null
Type.getType(undefined); // undefined
Type.getType({}); // object
Type.getType([]); // array

Type.assert(type, value)

Get type of value. Type should be valid type constant

Type.assert(Type.NULL, null); // true
Type.assert(Type.OBJECT, undefined); // false
Type.assert(Type.OBJECT, {}); // true
Type.assert(Type.ARRAY, []); // true

About

Dynamic type checker for nodejs >= v4.0.0

Resources

License

Stars

Watchers

Forks

Packages

No packages published