underscore - add typing to pick (#35977)

* add typing to underscore pick

* add typing to underscore pick

* add typing to underscore pick

* add typing to underscore pick
This commit is contained in:
Regev Brody 2019-06-12 23:05:41 +03:00 committed by Ron Buckton
parent 481946391c
commit 324d049ad8
2 changed files with 11 additions and 4 deletions

View File

@ -6,6 +6,7 @@
// Ard Timmerman <https://github.com/confususs>,
// Julian Gonggrijp <https://github.com/jgonggrijp>,
// Florian Keller <https://github.com/ffflorian>
// Regev Brody <https://github.com/regevbr>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
@ -3710,9 +3711,9 @@ declare module _ {
* @keys The key/value pairs to keep on `object`.
* @return Copy of `object` with only the `keys` properties.
**/
pick(
object: any,
...keys: any[]): any;
pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K>;
pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
pick<T, K extends keyof T>(obj: T, predicate: ObjectIterator<T[K], boolean>): Pick<T, K>;
/**
* @see _.pick

View File

@ -340,7 +340,13 @@ _.functions(_);
_.extend({ name: 'moe' }, { age: 50 });
_.extendOwn({ name: 'moe'}, { age: 50 });
_.assign({ name: 'moe'}, { age: 50 });
_.pick({ name: 'moe', age: 50, userid: 'moe1' }, 'name', 'age');
_.pick({ name: 'moe', age: 50, userid: 'moe1' }, 'name', 'age').age = 5;
_.pick({ name: 'moe', age: 50, userid: 'moe1' }, ['name', 'age']).age = 5;
_.pick({ name: 'moe', age: 50, userid: 'moe1' }, (value, key) => {
return key === 'name' || key === 'age';
}).age = 5;
_.omit({ name: 'moe', age: 50, userid: 'moe1' }, 'name');
_.omit({ name: 'moe', age: 50, userid: 'moe1' }, 'name', 'age');
_.omit({ name: 'moe', age: 50, userid: 'moe1' }, ['name', 'age']);