Open qappleh opened 4 years ago
function asArray(arrayLike) { let arr = new Array(arrayLike.length) for (let i = 0; i < arrayLike.length; ++i) { arr[i] = arrayLike[i] } return arr } function curry(f) { const len = f.length return function curriedFn() { const args = asArray(arguments) if (args.length < len) { return function () { return curriedFn.apply(null, args.concat(asArray(arguments))); } } return f.apply(null, args) } } function add(a, b) { return a + b } const add2 = curry(add)(2) console.log([1, 2, 3].map(add2)) // [ 3, 4, 5 ]
typescript下其类型描述过于繁琐, 我项目一般只描述到7个参数的柯里化.
typescript下其类型描述过于繁琐, 我项目一般只描述到7个参数的柯里化.