ts-prime
Version:
A utility library for JavaScript and Typescript.
31 lines • 1.1 kB
TypeScript
import { AnyArray } from './_types';
declare type IsPickKey<T extends {
[k: string]: unknown;
}, Keys extends string> = Keys extends keyof T ? 'ON' : 'OFF';
/**
* Creates an object composed of the picked `object` properties.
* @param object the target object
* @param names the properties names
* @signature R.pick(object, [prop1, prop2])
* @example
* P.pick({ a: 1, b: 2, c: 3, d: 4 }, ['a', 'd']) // => { a: 1, d: 4 }
* @example
* P.pipe({ a: 1, b: 2, c: 3, d: 4 }, R.pick(['a', 'd'])) // => { a: 1, d: 4 }
* @data_first
* @category Object
*/
export declare function pick<T extends {}, Q extends string>(object: T, names: AnyArray<Q>): IsPickKey<T, Q> extends 'ON' ? {
[k in Q]: T[k];
} : {
[k in keyof T]?: T[k];
};
export declare function pick<T extends {}, K extends keyof T>(object: T, names: readonly K[]): {
[k in K]: T[k];
};
export declare function pick<T extends {}, Q extends string>(names: readonly Q[]): (object: T) => IsPickKey<T, Q> extends 'ON' ? {
[k in Q]: T[k];
} : {
[k in keyof T]?: T[k];
};
export {};
//# sourceMappingURL=pick.d.ts.map