LendAndRegret/node_modules/es-toolkit/dist/compat/object/at.d.ts
2026-05-02 17:27:43 +08:00

34 lines
1.2 KiB
TypeScript

type PropertyName = string | number | symbol;
type Many<T> = T | readonly T[];
type PropertyPath = Many<PropertyName>;
/**
* Gets values at given paths from a dictionary or numeric dictionary.
*
* @template T - The type of the values in the dictionary.
* @param {Record<string, T> | Record<number, T> | null | undefined} object - The dictionary to query.
* @param {...PropertyPath[]} props - The property paths to get values for.
* @returns {T[]} Returns an array of the picked values.
*
* @example
* const object = { 'a': 1, 'b': 2, 'c': 3 };
* at(object, 'a', 'c');
* // => [1, 3]
*/
declare function at<T>(object: Record<string, T> | Record<number, T> | null | undefined, ...props: PropertyPath[]): T[];
/**
* Gets values at given keys from an object.
*
* @template T - The type of the object.
* @param {T | null | undefined} object - The object to query.
* @param {...Array<Many<keyof T>>} props - The property keys to get values for.
* @returns {Array<T[keyof T]>} Returns an array of the picked values.
*
* @example
* const object = { 'a': 1, 'b': 2, 'c': 3 };
* at(object, 'a', 'c');
* // => [1, 3]
*/
declare function at<T extends object>(object: T | null | undefined, ...props: Array<Many<keyof T>>): Array<T[keyof T]>;
export { at };