Skip to content

compose

创建函数的组合

78 bytes
since v12.1.0

使用方法

在函数组合中,每个函数都被给予下一个函数作为参数,并且必须调用它才能继续执行。

import * as _ from "radashi";
const useZero = (fn: any) => () => fn(0);
const objectize = (fn: any) => (num: any) => fn({ num });
const increment =
(fn: any) =>
({ num }: any) =>
fn({ num: num + 1 });
const returnArg = (arg: any) => (args: any) => args[arg];
const composed = _.compose(
useZero,
objectize,
increment,
increment,
returnArg("num")
);
composed(); // => 2

如果您以前没有见过这种写法,这可能有点令人困惑。这里是一个分解的组合。它等同于上面的代码。

const decomposed = useZero(objectize(increment(increment(_.returnArg("num")))));
decomposed(); // => 2