diff --git a/lodash/lodash-tests.ts b/lodash/lodash-tests.ts index 3afc49041..66fc5cab3 100644 --- a/lodash/lodash-tests.ts +++ b/lodash/lodash-tests.ts @@ -2102,23 +2102,6 @@ module TestMap { } } -result = _.sum([4, 2, 8, 6]); -result = _.sum([4, 2, 8, 6], function(v) { return v; }); -result = _.sum({a: 2, b: 4}); -result = _.sum({a: 2, b: 4}, function(v) { return v; }); -result = _.sum(stoogesAges, function (stooge) { return stooge.age; }); -result = _.sum(stoogesAges, 'age'); -result = _.sum(stoogesAgesDict, function(stooge) { return stooge.age; }); -result = _.sum(stoogesAgesDict, 'age'); -result = _([4, 2, 8, 6]).sum(); -result = _([4, 2, 8, 6]).sum(function(v) { return v; }); -result = _({a: 2, b: 4}).sum(); -result = _({a: 2, b: 4}).sum(function(v) { return v; }); -result = _(stoogesAges).sum(function (stooge) { return stooge.age; }); -result = _(stoogesAges).sum('age'); -result = _(stoogesAgesDict).sum(function (stooge) { return stooge.age; }); -result = _(stoogesAgesDict).sum('age'); - result = _.pluck(stoogesAges, 'name'); result = _(stoogesAges).pluck('name').value(); result = _.pluck(stoogesAges, ['name']); @@ -3152,6 +3135,75 @@ module TestRound { } } +// _.sum +module TestSum { + let array: number[]; + let list: _.List; + let dictionary: _.Dictionary; + + let listIterator: (value: number, index: number, collection: _.List) => number; + let dictionaryIterator: (value: number, key: string, collection: _.Dictionary) => number; + + { + let result: number; + + result = _.sum(array); + result = _.sum(array); + result = _.sum(array, listIterator); + result = _.sum(array, listIterator, any); + result = _.sum(array, ''); + + + result = _.sum(list); + result = _.sum(list); + result = _.sum(list, listIterator); + result = _.sum(list, listIterator, any); + result = _.sum(list, ''); + + result = _.sum(dictionary); + result = _.sum(dictionary); + result = _.sum(dictionary, dictionaryIterator); + result = _.sum(dictionary, dictionaryIterator, any); + result = _.sum(dictionary, ''); + + result = _(array).sum(); + result = _(array).sum(listIterator); + result = _(array).sum(listIterator, any); + result = _(array).sum(''); + + + result = _(list).sum(); + result = _(list).sum(listIterator); + result = _(list).sum(listIterator, any); + result = _(list).sum(''); + + result = _(dictionary).sum(); + result = _(dictionary).sum(dictionaryIterator); + result = _(dictionary).sum(dictionaryIterator, any); + result = _(dictionary).sum(''); + } + + { + let result: _.LoDashExplicitWrapper; + + result = _(array).chain().sum(); + result = _(array).chain().sum(listIterator); + result = _(array).chain().sum(listIterator, any); + result = _(array).chain().sum(''); + + + result = _(list).chain().sum(); + result = _(list).chain().sum(listIterator); + result = _(list).chain().sum(listIterator, any); + result = _(list).chain().sum(''); + + result = _(dictionary).chain().sum(); + result = _(dictionary).chain().sum(dictionaryIterator); + result = _(dictionary).chain().sum(dictionaryIterator, any); + result = _(dictionary).chain().sum(''); + } +} + /********** * Number * **********/ diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index f4690176d..c16c3a1f3 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -4538,136 +4538,6 @@ declare module _ { ): LoDashImplicitArrayWrapper; } - //_.sum - interface LoDashStatic { - /** - * Gets the sum of the values in collection. - * - * @param collection The collection to iterate over. - * @param iteratee The function invoked per iteration. - * @param thisArg The this binding of iteratee. - * @return Returns the sum. - **/ - sum( - collection: Array): number; - - /** - * @see _.sum - **/ - sum( - collection: List): number; - - /** - * @see _.sum - **/ - sum( - collection: Dictionary): number; - - /** - * @see _.sum - **/ - sum( - collection: Array, - iteratee: ListIterator, - thisArg?: any): number; - - /** - * @see _.sum - **/ - sum( - collection: List, - iteratee: ListIterator, - thisArg?: any): number; - - /** - * @see _.sum - **/ - sum( - collection: Dictionary, - iteratee: ObjectIterator, - thisArg?: any): number; - - /** - * @see _.sum - * @param property _.property callback shorthand. - **/ - sum( - collection: Array, - property: string): number; - - /** - * @see _.sum - * @param property _.property callback shorthand. - **/ - sum( - collection: List, - property: string): number; - - /** - * @see _.sum - * @param property _.property callback shorthand. - **/ - sum( - collection: Dictionary, - property: string): number; - } - - interface LoDashImplicitNumberArrayWrapper { - /** - * @see _.sum - **/ - sum(): number; - - /** - * @see _.sum - **/ - sum( - iteratee: ListIterator, - thisArg?: any): number; - } - - interface LoDashImplicitArrayWrapper { - /** - * @see _.sum - **/ - sum(): number; - - /** - * @see _.sum - **/ - sum( - iteratee: ListIterator, - thisArg?: any): number; - - /** - * @see _.sum - * @param property _.property callback shorthand. - **/ - sum( - property: string): number; - } - - interface LoDashImplicitObjectWrapper { - /** - * @see _.sum - **/ - sum(): number; - - /** - * @see _.sum - **/ - sum( - iteratee: ObjectIterator, - thisArg?: any): number; - - /** - * @see _.sum - * @param property _.property callback shorthand. - **/ - sum( - property: string): number; - } - //_.pluck interface LoDashStatic { /** @@ -7760,6 +7630,130 @@ declare module _ { round(precision?: number): LoDashExplicitWrapper; } + //_.sum + interface LoDashStatic { + /** + * Gets the sum of the values in collection. + * + * @param collection The collection to iterate over. + * @param iteratee The function invoked per iteration. + * @param thisArg The this binding of iteratee. + * @return Returns the sum. + */ + sum( + collection: List, + iteratee: ListIterator, + thisArg?: any + ): number; + + /** + * @see _.sum + **/ + sum( + collection: Dictionary, + iteratee: DictionaryIterator, + thisArg?: any + ): number; + + /** + * @see _.sum + */ + sum( + collection: List|Dictionary, + iteratee: string + ): number; + + /** + * @see _.sum + */ + sum(collection: List|Dictionary): number; + + /** + * @see _.sum + */ + sum(collection: List|Dictionary): number; + } + + interface LoDashImplicitArrayWrapper { + /** + * @see _.sum + */ + sum( + iteratee: ListIterator, + thisArg?: any + ): number; + + /** + * @see _.sum + */ + sum(iteratee: string): number; + + /** + * @see _.sum + */ + sum(): number; + } + + interface LoDashImplicitObjectWrapper { + /** + * @see _.sum + **/ + sum( + iteratee: ListIterator|DictionaryIterator, + thisArg?: any + ): number; + + /** + * @see _.sum + */ + sum(iteratee: string): number; + + /** + * @see _.sum + */ + sum(): number; + } + + interface LoDashExplicitArrayWrapper { + /** + * @see _.sum + */ + sum( + iteratee: ListIterator, + thisArg?: any + ): LoDashExplicitWrapper; + + /** + * @see _.sum + */ + sum(iteratee: string): LoDashExplicitWrapper; + + /** + * @see _.sum + */ + sum(): LoDashExplicitWrapper; + } + + interface LoDashExplicitObjectWrapper { + /** + * @see _.sum + */ + sum( + iteratee: ListIterator|DictionaryIterator, + thisArg?: any + ): LoDashExplicitWrapper; + + /** + * @see _.sum + */ + sum(iteratee: string): LoDashExplicitWrapper; + + /** + * @see _.sum + */ + sum(): LoDashExplicitWrapper; + } + /********** * Number * **********/