typed-js
v0.2.3
Published
Dynamic javascript type checker for node >= v4.0.0
Downloads
419
Maintainers
Readme
TYPED JS
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