export function pick, K extends keyof T>( object: T, keys: readonly K[] ): Pick export function pick>( object: T, keys: string[] ): Partial /** * @example * pick({ 'a': 1, 'b': '2', 'c': 3 }, ['a', 'c']) * => { 'a': 1, 'c': 3 } */ export function pick, K extends keyof T>( object: T, keys: string[] | K[] | readonly K[] ) { return Object.assign( {}, ...keys.map((key) => { if (object && Object.prototype.hasOwnProperty.call(object, key)) { return { [key]: object[key] } } }) ) }