Skip to main content

compose

compose(组合) 简介

  • 从右到左把接收到的函数合成为一个最终函数
  • 右边函数的返回值将作为一个参数提供给它左边的函数。即 compose(f, g, h) 变为 (...args) => f(g(h(...args))).
function compose(...funcs: Function[]) {
if (funcs.length === 0) {
return <T>(arg: T) => arg;
}

if (funcs.length === 1) {
return funcs[0];
}

return funcs.reduce((a, b) => {
return (...args) => {
return a(b(...args));
};
});
}