lodash: signatures of _.pick have been changed

This commit is contained in:
Ilya Mochalov
2015-12-07 04:33:00 +05:00
parent e5a27ea95e
commit 19053aa84e
2 changed files with 59 additions and 19 deletions
+35 -12
View File
@@ -7047,18 +7047,41 @@ module TestPairs {
}
// _.pick
interface TestPickFn {
(element: any, key: string, collection: any): boolean;
}
{
let testPickFn: TestPickFn;
let result: TResult;
result = _.pick<TResult, Object>({}, 0, '1', true, [2], ['3'], [true], [4, '5', true]);
result = _.pick<TResult, Object>({}, testPickFn);
result = _.pick<TResult, Object>({}, testPickFn, any);
result = _({}).pick<TResult>(0, '1', true, [2], ['3'], [true], [4, '5', true]).value();
result = _({}).pick<TResult>(testPickFn).value();
result = _({}).pick<TResult>(testPickFn, any).value();
module TestPick {
let predicate: (element: any, key: string, collection: any) => boolean;
{
let result: TResult;
result = _.pick<TResult, Object>({}, 'a');
result = _.pick<TResult, Object>({}, 0, 'a');
result = _.pick<TResult, Object>({}, true, 0, 'a');
result = _.pick<TResult, Object>({}, ['b', 1, false], true, 0, 'a');
result = _.pick<TResult, Object>({}, predicate);
result = _.pick<TResult, Object>({}, predicate, any);
}
{
let result: _.LoDashImplicitObjectWrapper<TResult>;
result = _({}).pick<TResult>('a');
result = _({}).pick<TResult>(0, 'a');
result = _({}).pick<TResult>(true, 0, 'a');
result = _({}).pick<TResult>(['b', 1, false], true, 0, 'a');
result = _({}).pick<TResult>(predicate);
result = _({}).pick<TResult>(predicate, any);
}
{
let result: _.LoDashExplicitObjectWrapper<TResult>;
result = _({}).chain().pick<TResult>('a');
result = _({}).chain().pick<TResult>(0, 'a');
result = _({}).chain().pick<TResult>(true, 0, 'a');
result = _({}).chain().pick<TResult>(['b', 1, false], true, 0, 'a');
result = _({}).chain().pick<TResult>(predicate);
result = _({}).chain().pick<TResult>(predicate, any);
}
}
// _.result
+24 -7
View File
@@ -11771,9 +11771,9 @@ declare module _ {
* @param predicate The function invoked per iteration or property names to pick, specified as individual
* property names or arrays of property names.
* @param thisArg The this binding of predicate.
* @return An object composed of the picked properties.
* @return Returns the new object.
*/
pick<TResult extends Object, T extends Object>(
pick<TResult extends {}, T extends {}>(
object: T,
predicate: ObjectIterator<any, boolean>,
thisArg?: any
@@ -11782,9 +11782,9 @@ declare module _ {
/**
* @see _.pick
*/
pick<TResult extends Object, T extends Object>(
pick<TResult extends {}, T extends {}>(
object: T,
...predicate: Array<string|number|boolean|Array<string|number|boolean>>
...predicate: (StringRepresentable|StringRepresentable[])[]
): TResult;
}
@@ -11792,7 +11792,7 @@ declare module _ {
/**
* @see _.pick
*/
pick<TResult extends Object>(
pick<TResult extends {}>(
predicate: ObjectIterator<any, boolean>,
thisArg?: any
): LoDashImplicitObjectWrapper<TResult>;
@@ -11800,11 +11800,28 @@ declare module _ {
/**
* @see _.pick
*/
pick<TResult extends Object>(
...predicate: Array<string|number|boolean|Array<string|number|boolean>>
pick<TResult extends {}>(
...predicate: (StringRepresentable|StringRepresentable[])[]
): LoDashImplicitObjectWrapper<TResult>;
}
interface LoDashExplicitObjectWrapper<T> {
/**
* @see _.pick
*/
pick<TResult extends {}>(
predicate: ObjectIterator<any, boolean>,
thisArg?: any
): LoDashExplicitObjectWrapper<TResult>;
/**
* @see _.pick
*/
pick<TResult extends {}>(
...predicate: (StringRepresentable|StringRepresentable[])[]
): LoDashExplicitObjectWrapper<TResult>;
}
//_.result
interface LoDashStatic {
/**