pipe
函数管道,从左向右执行函数序列。
函数签名
typescript
function pipe<T>(...fns: Array<(arg: T) => T>): (arg: T) => T参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
...fns | Array<(arg: T) => T> | 是 | 要组合的函数序列(从左向右执行) |
返回值
| 类型 | 说明 |
|---|---|
(arg: T) => T | 管道函数 |
工作原理
- 返回一个新函数,接收初始参数
- 从左向右依次执行函数序列:
- 第一个函数接收初始参数
- 每个函数的返回值作为下一个函数的参数
- 最后一个函数的返回值作为最终结果
- 使用
reduce实现:fns.reduce((acc, fn) => fn(acc), initialValue)
示例:
typescript
const add1 = (x) => x + 1
const double = (x) => x * 2
const square = (x) => x * x
const piped = pipe(add1, double, square)
piped(3) // square(double(add1(3))) = square(double(4)) = square(8) = 64执行顺序:左→右(add1 → double → square),更符合自然的阅读顺序。与 compose 相反。