UNPKG

es-toolkit

Version:

A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.

29 lines (28 loc) 808 B
import { toInteger } from "../util/toInteger.mjs"; //#region src/compat/function/nthArg.ts /** * Creates a function that retrieves the argument at the specified index `n`. * * If `n` is negative, the nth argument from the end is returned. * * @param [n=0] - The index of the argument to retrieve. * If negative, counts from the end of the arguments list. * @returns A new function that returns the argument at the specified index. * * @example * const getSecondArg = nthArg(1); * const result = getSecondArg('a', 'b', 'c'); * console.log(result); // => 'b' * * @example * const getLastArg = nthArg(-1); * const result = getLastArg('a', 'b', 'c'); * console.log(result); // => 'c' */ function nthArg(n = 0) { return function(...args) { return args.at(toInteger(n)); }; } //#endregion export { nthArg };