constType=require('infertype');//returns the primitive typeconsole.log(Type.infer(undefined));//undefinedconsole.log(Type.infer(null));//nullconsole.log(Type.infer(1));//numberconsole.log(Type.infer(''));//stringconsole.log(Type.infer(true));//booleanconsole.log(Type.infer({}));//objectconsole.log(Type.infer(Symbol()));//symbol//returns the type inferred from the constructorconsole.log(Type.infer([]));//Arrayconsole.log(Type.infer(newString('')));//Stringconsole.log(Type.infer(newBoolean(1)));//Booleanconsole.log(Type.infer(newNumber(1)));//Numberconsole.log(Type.infer(newMap()));//Mapconsole.log(Type.infer(Promise.resolve()));//Promiseconsole.log(Type.infer(newDate()));//Date//returns true if inferred types are strictly the sameconsole.log(Type.strictMatch(true,newBoolean(1)));//falseconsole.log(Type.strictMatch(1,newNumber(100)));//falseconsole.log(Type.strictMatch('',newString('')));//false//returns true if inferred types are exact match//or if one of the inferred type is a wrapper class/primitive type of the otherconsole.log(Type.match(true,newBoolean(1)));//trueconsole.log(Type.match('',newString('')));//trueconsole.log(Type.match(1,newNumber(100)));//true//check if a value is a primitive typeconsole.log(Type.isPrimitive(undefined));//trueconsole.log(Type.isPrimitive(null));//trueconsole.log(Type.isPrimitive(''));//trueconsole.log(Type.isPrimitive(1));//trueconsole.log(Type.isPrimitive(true));//trueconsole.log(Type.isPrimitive(Symbol()));//trueconsole.log(Type.isPrimitive({}));//trueconsole.log(Type.isPrimitive(newString('')));//falseconsole.log(Type.isPrimitive(newNumber('1')));//falseconsole.log(Type.isPrimitive([]);//false