Merge pull request #7077 from chrootsu/lodash-pick

lodash: signatures of _.pick have been changed
This commit is contained in:
Masahiro Wakame
2015-12-10 22:00:31 +09:00
2 changed files with 59 additions and 19 deletions
+35 -12
View File
@@ -7198,18 +7198,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
@@ -11960,9 +11960,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
@@ -11971,9 +11971,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;
}
@@ -11981,7 +11981,7 @@ declare module _ {
/**
* @see _.pick
*/
pick<TResult extends Object>(
pick<TResult extends {}>(
predicate: ObjectIterator<any, boolean>,
thisArg?: any
): LoDashImplicitObjectWrapper<TResult>;
@@ -11989,11 +11989,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 {
/**