import * as _ from 'underscore'function always(VALUE) { return function() { return VALUE; };};function checker(...args){ const validator = args return function(obj){ return _.reduce(validator,(err,check)=>{ if(check(obj)){ return err }else{ return _.chain(err).push(check.message).value() } },[]) }}always(true)const alwaysPasses = checker(always(true),always(true))console.log(alwaysPasses({}))const fails:any = always(false)fails.message = 'a fali'const alwaysFails = checker(fails)console.log(alwaysFails({}))