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 13:05:41 -07:00
committed by Ron Buckton
parent 481946391c
commit 324d049ad8
2 changed files with 11 additions and 4 deletions
+4 -3
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
+7 -1
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']);