From 8335e58dac9a528c610dc5ca993e80edfaef8d10 Mon Sep 17 00:00:00 2001 From: Ilya Mochalov Date: Sun, 16 Aug 2015 00:01:54 +0500 Subject: [PATCH] lodash: changed _.partition() method --- lodash/lodash-tests.ts | 28 +++++++++++ lodash/lodash.d.ts | 112 ++++++++++++++++++++++++++--------------- 2 files changed, 99 insertions(+), 41 deletions(-) diff --git a/lodash/lodash-tests.ts b/lodash/lodash-tests.ts index d36b5dfc4e..1790912f4f 100644 --- a/lodash/lodash-tests.ts +++ b/lodash/lodash-tests.ts @@ -626,6 +626,34 @@ result = _(stoogesAgesDict).sum('age'); result = _.pluck(stoogesAges, 'name'); result = _(stoogesAges).pluck('name').value(); +// _.partition +result = _.partition('abcd', (n) => n < 'c'); +result = _.partition(['a', 'b', 'c', 'd'], (n) => n < 'c'); +result = _.partition([1, 2, 3, 4], (n) => n < 3); +result = _.partition({0: 1, 1: 2, 2: 3, 3: 4, length: 4}, (n) => n < 3); +result = _.partition({a: 1, b: 2, c: 3, d: 4}, (n) => n < 3); +result = <{a: number}[][]>_.partition<{a: number}, {a: number}>([{a: 1}, {a: 2}], {a: 2}); +result = <{a: number}[][]>_.partition<{a: number}, {a: number}>({0: {a: 1}, 1: {a: 2}, length: 2}, {a: 2}); +result = <{a: number}[][]>_.partition<{a: number}, {a: number}>({0: {a: 1}, 1: {a: 2}}, {a: 2}); +result = <{a: number}[][]>_.partition<{a: number}>([{a: 1}, {a: 2}], 'a'); +result = <{a: number}[][]>_.partition<{a: number}>([{a: 1}, {a: 2}], 'a', 2); +result = <{a: number}[][]>_.partition<{a: number}>({0: {a: 1}, 1: {a: 2}, length: 2}, 'a'); +result = <{a: number}[][]>_.partition<{a: number}>({0: {a: 1}, 1: {a: 2}, length: 2}, 'a', 2); +result = <{a: number}[][]>_.partition<{a: number}>({0: {a: 1}, 1: {a: 2}}, 'a'); +result = <{a: number}[][]>_.partition<{a: number}>({0: {a: 1}, 1: {a: 2}}, 'a', 2); +result = _('abcd').partition((n) => n < 'c').value(); +result = _(['a', 'b', 'c', 'd']).partition((n) => n < 'c').value(); +result = _([1, 2, 3, 4]).partition((n) => n < 3).value(); +result = _({0: 1, 1: 2, 2: 3, 3: 4, length: 4}).partition((n) => n < 3).value(); +result = _({a: 1, b: 2, c: 3, d: 4}).partition((n) => n < 3).value(); +result = <{a: number}[][]>_([{a: 1}, {a: 2}]).partition<{a: number}>({a: 2}).value(); +result = <{a: number}[][]>_({0: {a: 1}, 1: {a: 2}, length: 2}).partition<{a: number}, {a: number}>({a: 2}).value(); +result = <{a: number}[][]>_({0: {a: 1}, 1: {a: 2}}).partition<{a: number}, {a: number}>({a: 2}).value(); +result = <{a: number}[][]>_([{a: 1}, {a: 2}]).partition('a').value(); +result = <{a: number}[][]>_([{a: 1}, {a: 2}]).partition('a', 2).value(); +result = <{a: number}[][]>_({0: {a: 1}, 1: {a: 2}}).partition<{a: number}>('a').value(); +result = <{a: number}[][]>_({0: {a: 1}, 1: {a: 2}}).partition<{a: number}>('a', 2).value(); + interface ABC { [index: string]: number; a: number; diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index 0820b5c33e..8e464a2caf 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -4115,72 +4115,70 @@ declare module _ { * @return Returns the array of grouped elements. **/ partition( - collection: Array, + collection: List, callback: ListIterator, thisArg?: any): T[][]; - /** - * @see _.partition - **/ - partition( - collection: List, - callback: ListIterator, - thisArg?: any): T; - /** * @see _.partition **/ partition( collection: Dictionary, callback: DictionaryIterator, - thisArg?: any): T; + thisArg?: any): T[][]; /** * @see _.partition - * @param _.matches style callback - **/ - partition( - collection: Array, - whereValue: W): T; - - /** - * @see _.partition - * @param _.matches style callback **/ partition( collection: List, - whereValue: W): T; + whereValue: W): T[][]; /** * @see _.partition - * @param _.matches style callback **/ partition( collection: Dictionary, - whereValue: W): T; + whereValue: W): T[][]; /** * @see _.partition - * @param _.property style callback - **/ - partition( - collection: Array, - pluckValue: string): T; - - /** - * @see _.partition - * @param _.property style callback **/ partition( collection: List, - pluckValue: string): T; + path: string, + srcValue: any): T[][]; /** - * @param _.property style callback + * @see _.partition **/ partition( collection: Dictionary, - pluckValue: string): T; + path: string, + srcValue: any): T[][]; + + /** + * @see _.partition + **/ + partition( + collection: List, + pluckValue: string): T[][]; + + /** + * @see _.partition + **/ + partition( + collection: Dictionary, + pluckValue: string): T[][]; + } + + interface LoDashStringWrapper { + /** + * @see _.partition + */ + partition( + callback: ListIterator, + thisArg?: any): LoDashArrayWrapper; } interface LoDashArrayWrapper { @@ -4189,26 +4187,58 @@ declare module _ { */ partition( callback: ListIterator, - thisArg?: any): LoDashArrayWrapper; + thisArg?: any): LoDashArrayWrapper; /** * @see _.partition - * @param _.matches style callback */ partition( - whereValue: W): LoDashArrayWrapper; + whereValue: W): LoDashArrayWrapper; /** * @see _.partition - * @param _.matchesProperty style callback */ partition( path: string, - srcValue: any): LoDashArrayWrapper; + srcValue: any): LoDashArrayWrapper; /** * @see _.partition - * @param _.property style callback */ partition( - pluckValue: string): LoDashArrayWrapper; + pluckValue: string): LoDashArrayWrapper; + } + + interface LoDashObjectWrapper { + /** + * @see _.partition + */ + partition( + callback: ListIterator, + thisArg?: any): LoDashArrayWrapper; + + /** + * @see _.partition + */ + partition( + callback: DictionaryIterator, + thisArg?: any): LoDashArrayWrapper; + + /** + * @see _.partition + */ + partition( + whereValue: W): LoDashArrayWrapper; + + /** + * @see _.partition + */ + partition( + path: string, + srcValue: any): LoDashArrayWrapper; + + /** + * @see _.partition + */ + partition( + pluckValue: string): LoDashArrayWrapper; } //_.reduce