mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
lodash: signatures of _.flatten and _.flattenDeep have been changed
This commit is contained in:
+144
-33
@@ -632,68 +632,179 @@ module TestFirst {
|
||||
result = _(list).first<TResult>();
|
||||
}
|
||||
|
||||
result = <Array<number>>_.flatten([[1, 2], [3, 4]]);
|
||||
result = <Array<number>>_.flatten([[1, 2], [3, 4], 5, 6]);
|
||||
result = <Array<number|Array<Array<number>>>>_.flatten([1, [2], [3, [[4]]]]);
|
||||
// _.flatten
|
||||
module TestFlatten {
|
||||
{
|
||||
let result: string[];
|
||||
|
||||
result = <Array<number>>_.flatten([1, [2], [[3]]], true);
|
||||
result = <Array<number>>_.flatten<number>([1, [2], [3, [[4]]]], true);
|
||||
result = <Array<number|boolean>>_.flatten<number|boolean>([1, [2], [3, [[false]]]], true);
|
||||
result = _.flatten('abc');
|
||||
}
|
||||
|
||||
result = <_.LoDashImplicitArrayWrapper<number>>_([[1, 2], [3, 4], 5, 6]).flatten();
|
||||
result = <_.LoDashImplicitArrayWrapper<number|Array<Array<number>>>>_([1, [2], [3, [[4]]]]).flatten();
|
||||
{
|
||||
let result: number[];
|
||||
|
||||
result = <_.LoDashImplicitArrayWrapper<number>>_([1, [2], [3, [[4]]]]).flatten(true);
|
||||
result = _.flatten<number>([1, 2, 3]);
|
||||
result = _.flatten<number>([1, [2, 3]]);
|
||||
result = _.flatten<number>([1, [2, [3]]], true);
|
||||
result = _.flatten<number>([1, [2, [3]], [[4]]], true);
|
||||
|
||||
result = _.flatten<number>({0: 1, 1: 2, 2: 3, length: 3});
|
||||
result = _.flatten<number>({0: 1, 1: [2, 3], length: 2});
|
||||
result = _.flatten<number>({0: 1, 1: [2, [3]], length: 2}, true);
|
||||
result = _.flatten<number>({0: 1, 1: [2, [3]], 2: [[4]], length: 3}, true);
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.RecursiveArray<number>;
|
||||
|
||||
result = _.flatten<number>([1, [2, [3]]]);
|
||||
result = _.flatten<number>([1, [2, [3]], [[4]]]);
|
||||
|
||||
result = _.flatten<number>({0: 1, 1: [2, [3]], length: 2});
|
||||
result = _.flatten<number>({0: 1, 1: [2, [3]], 2: [[4]], length: 3});
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashImplicitArrayWrapper<string>;
|
||||
|
||||
result = _('abc').flatten();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashImplicitArrayWrapper<number>;
|
||||
|
||||
result = _([1, 2, 3]).flatten<number>();
|
||||
result = _([1, [2, 3]]).flatten<number>();
|
||||
result = _([1, [2, [3]]]).flatten<number>(true);
|
||||
result = _([1, [2, [3]], [[4]]]).flatten<number>(true);
|
||||
|
||||
result = _({0: 1, 1: 2, 2: 3, length: 3}).flatten<number>();
|
||||
result = _({0: 1, 1: [2, 3], length: 2}).flatten<number>();
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).flatten<number>(true);
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).flatten<number>(true);
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashImplicitArrayWrapper<number|number[]>;
|
||||
|
||||
result = _([1, [2, [3]]]).flatten<number|number[]>();
|
||||
result = _([1, [2, [3]], [[4]]]).flatten<number|number[]>();
|
||||
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).flatten<number|number[]>();
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).flatten<number|number[]>();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashExplicitArrayWrapper<string>;
|
||||
|
||||
result = _('abc').chain().flatten();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashExplicitArrayWrapper<number>;
|
||||
|
||||
result = _([1, 2, 3]).chain().flatten<number>();
|
||||
result = _([1, [2, 3]]).chain().flatten<number>();
|
||||
result = _([1, [2, [3]]]).chain().flatten<number>(true);
|
||||
result = _([1, [2, [3]], [[4]]]).chain().flatten<number>(true);
|
||||
|
||||
result = _({0: 1, 1: 2, 2: 3, length: 3}).chain().flatten<number>();
|
||||
result = _({0: 1, 1: [2, 3], length: 2}).chain().flatten<number>();
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).chain().flatten<number>(true);
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).chain().flatten<number>(true);
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashExplicitArrayWrapper<number|number[]>;
|
||||
|
||||
result = _([1, [2, [3]]]).chain().flatten<number|number[]>();
|
||||
result = _([1, [2, [3]], [[4]]]).chain().flatten<number|number[]>();
|
||||
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).chain().flatten<number|number[]>();
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).chain().flatten<number|number[]>();
|
||||
}
|
||||
}
|
||||
|
||||
// _.flattenDeep
|
||||
module TestFlattenDeep {
|
||||
interface RecursiveArray<T> extends Array<T|RecursiveArray<T>> {}
|
||||
interface ListOfRecursiveArraysOrValues<T> extends _.List<T|RecursiveArray<T>> {}
|
||||
interface RecursiveList<T> extends _.List<T|RecursiveList<T>> { }
|
||||
|
||||
let recursiveArray: RecursiveArray<TResult>;
|
||||
let listOfMaybeRecursiveArraysOrValues: ListOfRecursiveArraysOrValues<TResult>;
|
||||
let recursiveList: RecursiveList<TResult>;
|
||||
|
||||
{
|
||||
let result: TResult[];
|
||||
let result: string[];
|
||||
|
||||
result = _.flattenDeep<TResult>(recursiveArray);
|
||||
result = _.flattenDeep<TResult>(listOfMaybeRecursiveArraysOrValues);
|
||||
result = _.flattenDeep('abc');
|
||||
}
|
||||
|
||||
{
|
||||
let result: any[];
|
||||
let result: number[];
|
||||
|
||||
result = _.flattenDeep<TResult>(recursiveList);
|
||||
result = _.flattenDeep<number>([1, 2, 3]);
|
||||
result = _.flattenDeep<number>([1, [2, 3]]);
|
||||
result = _.flattenDeep<number>([1, [2, [3]]]);
|
||||
result = _.flattenDeep<number>([1, [2, [3]], [[4]]]);
|
||||
|
||||
result = _.flattenDeep<number>({0: 1, 1: 2, 2: 3, length: 3});
|
||||
result = _.flattenDeep<number>({0: 1, 1: [2, 3], length: 2});
|
||||
result = _.flattenDeep<number>({0: 1, 1: [2, [3]], length: 2});
|
||||
result = _.flattenDeep<number>({0: 1, 1: [2, [3]], 2: [[4]], length: 3});
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashImplicitArrayWrapper<TResult>;
|
||||
let result: _.LoDashImplicitArrayWrapper<string>;
|
||||
|
||||
result = _(recursiveArray).flattenDeep<TResult>();
|
||||
|
||||
result = _(listOfMaybeRecursiveArraysOrValues).flattenDeep<TResult>();
|
||||
result = _('abc').flattenDeep();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashImplicitArrayWrapper<any>;
|
||||
let result: _.LoDashImplicitArrayWrapper<number>;
|
||||
|
||||
result = _(recursiveList).flattenDeep();
|
||||
result = _([1, 2, 3]).flattenDeep<number>();
|
||||
result = _([1, [2, 3]]).flattenDeep<number>();
|
||||
result = _([1, [2, [3]]]).flattenDeep<number>();
|
||||
result = _([1, [2, [3]], [[4]]]).flattenDeep<number>();
|
||||
|
||||
result = _({0: 1, 1: 2, 2: 3, length: 3}).flattenDeep<number>();
|
||||
result = _({0: 1, 1: [2, 3], length: 2}).flattenDeep<number>();
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).flattenDeep<number>();
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).flattenDeep<number>();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashExplicitArrayWrapper<TResult>;
|
||||
let result: _.LoDashImplicitArrayWrapper<number|number[]>;
|
||||
|
||||
result = _(recursiveArray).chain().flattenDeep<TResult>();
|
||||
result = _([1, [2, [3]]]).flattenDeep<number|number[]>();
|
||||
result = _([1, [2, [3]], [[4]]]).flattenDeep<number|number[]>();
|
||||
|
||||
result = _(listOfMaybeRecursiveArraysOrValues).chain().flattenDeep<TResult>();
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).flattenDeep<number|number[]>();
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).flattenDeep<number|number[]>();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashExplicitArrayWrapper<any>;
|
||||
let result: _.LoDashExplicitArrayWrapper<string>;
|
||||
|
||||
result = _(recursiveList).chain().flattenDeep();
|
||||
result = _('abc').chain().flattenDeep();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashExplicitArrayWrapper<number>;
|
||||
|
||||
result = _([1, 2, 3]).chain().flattenDeep<number>();
|
||||
result = _([1, [2, 3]]).chain().flattenDeep<number>();
|
||||
result = _([1, [2, [3]]]).chain().flattenDeep<number>();
|
||||
result = _([1, [2, [3]], [[4]]]).chain().flattenDeep<number>();
|
||||
|
||||
result = _({0: 1, 1: 2, 2: 3, length: 3}).chain().flattenDeep<number>();
|
||||
result = _({0: 1, 1: [2, 3], length: 2}).chain().flattenDeep<number>();
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).chain().flattenDeep<number>();
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).chain().flattenDeep<number>();
|
||||
}
|
||||
|
||||
{
|
||||
let result: _.LoDashExplicitArrayWrapper<number|number[]>;
|
||||
|
||||
result = _([1, [2, [3]]]).chain().flattenDeep<number|number[]>();
|
||||
result = _([1, [2, [3]], [[4]]]).chain().flattenDeep<number|number[]>();
|
||||
|
||||
result = _({0: 1, 1: [2, [3]], length: 2}).chain().flattenDeep<number|number[]>();
|
||||
result = _({0: 1, 1: [2, [3]], 2: [[4]], length: 3}).chain().flattenDeep<number|number[]>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+61
-32
@@ -1138,47 +1138,72 @@ declare module _ {
|
||||
first<TResult>(): TResult;
|
||||
}
|
||||
|
||||
interface MaybeNestedList<T> extends List<T|List<T>> { }
|
||||
interface RecursiveArray<T> extends Array<T|RecursiveArray<T>> { }
|
||||
interface ListOfRecursiveArraysOrValues<T> extends List<T|RecursiveArray<T>> { }
|
||||
interface RecursiveList<T> extends List<T|RecursiveList<T>> { }
|
||||
interface RecursiveArray<T> extends Array<T|RecursiveArray<T>> {}
|
||||
interface ListOfRecursiveArraysOrValues<T> extends List<T|RecursiveArray<T>> {}
|
||||
|
||||
//_.flatten
|
||||
interface LoDashStatic {
|
||||
/**
|
||||
* Flattens a nested array a single level.
|
||||
*
|
||||
* _.flatten(x) is equivalent to _.flatten(x, false);
|
||||
*
|
||||
* @param array The array to flatten.
|
||||
* @return `array` flattened.
|
||||
**/
|
||||
flatten<T>(array: MaybeNestedList<T>): T[];
|
||||
|
||||
/**
|
||||
* Flattens a nested array. If isDeep is true the array is recursively flattened, otherwise it is only
|
||||
* Flattens a nested array. If isDeep is true the array is recursively flattened, otherwise it’s only
|
||||
* flattened a single level.
|
||||
*
|
||||
* If you know whether or not this should be recursively at compile time, you typically want to use a
|
||||
* version without a boolean parameter (i.e. `_.flatten(x)` or `_.flattenDeep(x)`).
|
||||
*
|
||||
* @param array The array to flatten.
|
||||
* @param deep Specify a deep flatten.
|
||||
* @return `array` flattened.
|
||||
**/
|
||||
flatten<T>(array: RecursiveList<T>, isDeep: boolean): List<T> | RecursiveList<T>;
|
||||
* @param isDeep Specify a deep flatten.
|
||||
* @return Returns the new flattened array.
|
||||
*/
|
||||
flatten<T>(array: ListOfRecursiveArraysOrValues<T>, isDeep: boolean): T[];
|
||||
|
||||
/**
|
||||
* @see _.flatten
|
||||
*/
|
||||
flatten<T>(array: List<T|T[]>): T[];
|
||||
|
||||
/**
|
||||
* @see _.flatten
|
||||
*/
|
||||
flatten<T>(array: ListOfRecursiveArraysOrValues<T>): RecursiveArray<T>;
|
||||
}
|
||||
|
||||
interface LoDashImplicitWrapper<T> {
|
||||
/**
|
||||
* @see _.flatten
|
||||
*/
|
||||
flatten(): LoDashImplicitArrayWrapper<string>;
|
||||
}
|
||||
|
||||
interface LoDashImplicitArrayWrapper<T> {
|
||||
/**
|
||||
* @see _.flatten
|
||||
**/
|
||||
flatten<T>(): LoDashImplicitArrayWrapper<any>;
|
||||
*/
|
||||
flatten<TResult>(isDeep?: boolean): LoDashImplicitArrayWrapper<TResult>;
|
||||
}
|
||||
|
||||
interface LoDashImplicitObjectWrapper<T> {
|
||||
/**
|
||||
* @see _.flatten
|
||||
**/
|
||||
flatten<T>(isShallow: boolean): LoDashImplicitArrayWrapper<any>;
|
||||
*/
|
||||
flatten<TResult>(isDeep?: boolean): LoDashImplicitArrayWrapper<TResult>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitWrapper<T> {
|
||||
/**
|
||||
* @see _.flatten
|
||||
*/
|
||||
flatten(): LoDashExplicitArrayWrapper<string>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitArrayWrapper<T> {
|
||||
/**
|
||||
* @see _.flatten
|
||||
*/
|
||||
flatten<TResult>(isDeep?: boolean): LoDashExplicitArrayWrapper<TResult>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitObjectWrapper<T> {
|
||||
/**
|
||||
* @see _.flatten
|
||||
*/
|
||||
flatten<TResult>(isDeep?: boolean): LoDashExplicitArrayWrapper<TResult>;
|
||||
}
|
||||
|
||||
//_.flattenDeep
|
||||
@@ -1189,17 +1214,14 @@ declare module _ {
|
||||
* @param array The array to recursively flatten.
|
||||
* @return Returns the new flattened array.
|
||||
*/
|
||||
flattenDeep<T>(array: RecursiveArray<T>): T[];
|
||||
|
||||
/**
|
||||
* @see _.flattenDeep
|
||||
*/
|
||||
flattenDeep<T>(array: ListOfRecursiveArraysOrValues<T>): T[];
|
||||
}
|
||||
|
||||
interface LoDashImplicitWrapper<T> {
|
||||
/**
|
||||
* @see _.flattenDeep
|
||||
*/
|
||||
flattenDeep<T>(array: RecursiveList<T>): any[];
|
||||
flattenDeep(): LoDashImplicitArrayWrapper<string>;
|
||||
}
|
||||
|
||||
interface LoDashImplicitArrayWrapper<T> {
|
||||
@@ -1216,6 +1238,13 @@ declare module _ {
|
||||
flattenDeep<T>(): LoDashImplicitArrayWrapper<T>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitWrapper<T> {
|
||||
/**
|
||||
* @see _.flattenDeep
|
||||
*/
|
||||
flattenDeep(): LoDashExplicitArrayWrapper<string>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitArrayWrapper<T> {
|
||||
/**
|
||||
* @see _.flattenDeep
|
||||
|
||||
Reference in New Issue
Block a user