ts-data-forge
Version:
[](https://www.npmjs.com/package/ts-data-forge) [](https://www.npmjs.com/package/ts-data-forge) [;
*
* const last = Arr.at(-1)(letters);
*
* const missing = Arr.at(letters, 5);
*
* assert.deepStrictEqual(two, Optional.some('b'));
*
* assert.deepStrictEqual(last, Optional.some('c'));
*
* assert.deepStrictEqual(missing, Optional.none);
* ```
*/
export declare function at<const Ar extends readonly unknown[]>(array: Ar, index: ArgArrayIndexWithNegative<Ar>): Optional<Ar[number]>;
export declare function at(index: SizeType.ArgArrWithNegative): <E>(array: readonly E[]) => Optional<E>;
/**
* Returns the first element of an array as an Optional.
*
* @example
*
* ```ts
* const users = [{ id: 1 }, { id: 2 }];
*
* const empty: { id: number }[] = [];
*
* const first = Arr.head(users);
*
* const none = Arr.head(empty);
*
* assert.deepStrictEqual(first, Optional.some({ id: 1 }));
*
* assert.deepStrictEqual(none, Optional.none);
* ```
*/
export declare const head: <const Ar extends readonly unknown[]>(array: Ar) => Ar extends readonly [] ? None : Ar extends readonly [infer E, ...unknown[]] ? Some<E> : Ar extends NonEmptyArray<infer E> ? Some<E> : Optional<Ar[number]>;
/**
* Returns the last element of an array as an Optional.
*
* @example
*
* ```ts
* const queue = ['first', 'second'];
*
* const emptyQueue: string[] = [];
*
* const lastValue = Arr.last(queue);
*
* const none = Arr.last(emptyQueue);
*
* assert.deepStrictEqual(lastValue, Optional.some('second'));
*
* assert.deepStrictEqual(none, Optional.none);
* ```
*/
export declare const last: <const Ar extends readonly unknown[]>(array: Ar) => Ar extends readonly [] ? None : Ar extends readonly [...unknown[], infer E] ? Some<E> : Ar extends NonEmptyArray<infer E> ? Some<E> : Optional<Ar[number]>;
/**
* Alias for `head`.
*
* @see {@link head}
*/
export declare const first: <const Ar extends readonly unknown[]>(array: Ar) => Ar extends readonly [] ? None : Ar extends readonly [infer E, ...unknown[]] ? Some<E> : Ar extends NonEmptyArray<infer E> ? Some<E> : Optional<Ar[number]>;
//# sourceMappingURL=array-utils-element-access.d.mts.map