RecipesChapter 7: Variadic Tuple Types

Typing the Simplest curry function

Recipe 7.5 from The TypeScript Cookbook

function curry<T extends any[], U extends any[], R>(
  f: (...args: [...T, ...U]) => R,
  ...t: T
) {
  return (...u: U) => f(...t, ...u);
}
Open in TypeScript Playground →