Skip to content

partial

偏函数应用,固定函数的部分参数,返回接收剩余参数的新函数。

函数签名

typescript
function partial<T extends (...args: any[]) => any>(
  fn: T,
  ...args: any[]
): (...remainingArgs: any[]) => ReturnType<T>

参数

参数名类型必填说明
fnFunction原函数
...argsany[]要预先固定的参数

返回值

类型说明
(...remainingArgs: any[]) => ReturnType<T>偏函数,接收剩余参数

工作原理

  1. 保存要固定的参数
  2. 返回新函数:
    • 接收剩余参数
    • 将固定参数和剩余参数合并:[...fixedArgs, ...remainingArgs]
    • 调用原函数并传入合并后的参数
    • 返回原函数的执行结果

示例

typescript
const add = (a, b, c) => a + b + c
const add5 = partial(add, 5)

add5(3, 2)  // 5 + 3 + 2 = 10

与柯里化的区别:偏函数一次性固定多个参数,返回接收剩余参数的函数。柯里化是逐个收集参数。