Skip to content

partial

引数を前もって提供した関数を作成します。

bindと動作が似ていますが、thisを固定しないという違いがあります。

Symbol型のpartial.placeholderを使用すると、前もって提供した引数が使用される位置を決定できます。

関数のlengthプロパティは設定しません。

インターフェース

typescript
function partial<F extends (...args: any[]) => any>(func: F, ...partialArgs: any[]): (...args: any[]) => ReturnType<F>;

namespace partial {
  placeholder: symbol;
}

パラメータ

  • func (F): 前もって引数を提供する関数。
  • partialArgs (any[], オプション): 前もって提供される引数。

戻り値

((...args: any[]) => ReturnType<F>): 前もって引数が提供された関数。

typescript
import { partial } from 'es-toolkit/function';

function greet(greeting, name) {
  return greeting + ' ' + name;
}

const sayHelloTo = partial(greet, 'hello');
sayHelloTo('fred');
// => 'hello fred'

// プレースホルダーを使用して部分適用
const greetFred = partial(greet, partial.placeholder, 'fred');
greetFred('hi');
// => 'hi fred'

MIT ライセンスの下で配布されています。