javascript函数式编程笔记

59 阅读1分钟
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({}))