diff --git a/lodash/lodash-tests.ts b/lodash/lodash-tests.ts index af31de6ce..c3748114d 100644 --- a/lodash/lodash-tests.ts +++ b/lodash/lodash-tests.ts @@ -6442,6 +6442,18 @@ module TestMaxBy { result = _(dictionary).maxBy<{a: number}, number>({a: 42}); } +// _.mean +module TestMean { + let array: number[]; + + let result: number; + + result = _.mean(array); + + result = _(array).mean(); + +} + // _.min module TestMin { let array: number[]; @@ -6533,58 +6545,74 @@ module TestSum { 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(''); + } +} + +// _.sumBy +module TestSumBy { + 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 = _.sumBy(array); + result = _.sumBy(array, listIterator); + result = _.sumBy(array, ''); + + + result = _.sumBy(list); + result = _.sumBy(list, listIterator); + result = _.sumBy(list, ''); + + result = _.sumBy(dictionary); + result = _.sumBy(dictionary, dictionaryIterator); + result = _.sumBy(dictionary, ''); + + result = _(array).sumBy(listIterator); + result = _(array).sumBy(''); + + result = _(list).sumBy(listIterator); + result = _(list).sumBy(''); + + result = _(dictionary).sumBy(dictionaryIterator); + result = _(dictionary).sumBy(''); + } + + { + let result: _.LoDashExplicitWrapper; + + result = _(array).chain().sumBy(listIterator); + result = _(array).chain().sumBy(''); + + result = _(list).chain().sumBy(listIterator); + result = _(list).chain().sumBy(''); + + result = _(dictionary).chain().sumBy(dictionaryIterator); + result = _(dictionary).chain().sumBy(''); } } diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index 1f5d7d743..0bdf99972 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -135,9 +135,9 @@ added 8 utility methods: added 4 math methods: - [x] _.maxBy -- [ ] _.mean +- [x] _.mean - [x] _.minBy -- [ ] _.sumBy +- [x] _.sumBy added 2 function methods: - [x] _.flip @@ -10226,6 +10226,38 @@ declare module _ { ): T; } + //_.mean + interface LoDashStatic { + /** + * Computes the mean of the values in `array`. + * + * @static + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {number} Returns the mean. + * @example + * + * _.mean([4, 2, 8, 6]); + * // => 5 + */ + mean( + collection: List + ): number; + } + + interface LoDashImplicitArrayWrapper { + /** + * @see _.mean + */ + mean(): number; + + /** + * @see _.mean + */ + mean(): number; + } + //_.min interface LoDashStatic { /** @@ -10391,40 +10423,19 @@ declare module _ { //_.sum interface LoDashStatic { /** - * Gets the sum of the values in collection. + * Computes the sum of the values in `array`. * - * @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. + * @static + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {number} Returns the sum. + * @example + * + * _.sum([4, 2, 8, 6]); + * // => 20 */ - 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; + sum(collection: List): number; /** * @see _.sum @@ -10433,19 +10444,6 @@ declare module _ { } interface LoDashImplicitArrayWrapper { - /** - * @see _.sum - */ - sum( - iteratee: ListIterator, - thisArg?: any - ): number; - - /** - * @see _.sum - */ - sum(iteratee: string): number; - /** * @see _.sum */ @@ -10456,15 +10454,7 @@ declare module _ { /** * @see _.sum **/ - sum( - iteratee: ListIterator|DictionaryIterator, - thisArg?: any - ): number; - - /** - * @see _.sum - */ - sum(iteratee: string): number; + sum(): number; /** * @see _.sum @@ -10473,19 +10463,6 @@ declare module _ { } interface LoDashExplicitArrayWrapper { - /** - * @see _.sum - */ - sum( - iteratee: ListIterator, - thisArg?: any - ): LoDashExplicitWrapper; - - /** - * @see _.sum - */ - sum(iteratee: string): LoDashExplicitWrapper; - /** * @see _.sum */ @@ -10496,15 +10473,7 @@ declare module _ { /** * @see _.sum */ - sum( - iteratee: ListIterator|DictionaryIterator, - thisArg?: any - ): LoDashExplicitWrapper; - - /** - * @see _.sum - */ - sum(iteratee: string): LoDashExplicitWrapper; + sum(): LoDashExplicitWrapper; /** * @see _.sum @@ -10512,6 +10481,138 @@ declare module _ { sum(): LoDashExplicitWrapper; } + //_.sumBy + interface LoDashStatic { + /** + * This method is like `_.sum` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the value to be summed. + * The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the sum. + * @example + * + * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }]; + * + * _.sumBy(objects, function(o) { return o.n; }); + * // => 20 + * + * // using the `_.property` iteratee shorthand + * _.sumBy(objects, 'n'); + * // => 20 + */ + sumBy( + collection: List, + iteratee: ListIterator + ): number; + + /** + * @see _.sumBy + **/ + sumBy( + collection: Dictionary, + iteratee: DictionaryIterator + ): number; + + /** + * @see _.sumBy + */ + sumBy( + collection: List|Dictionary, + iteratee: string + ): number; + + /** + * @see _.sumBy + */ + sumBy(collection: List|Dictionary): number; + + /** + * @see _.sumBy + */ + sumBy(collection: List|Dictionary): number; + } + + interface LoDashImplicitArrayWrapper { + /** + * @see _.sumBy + */ + sumBy( + iteratee: ListIterator + ): number; + + /** + * @see _.sumBy + */ + sumBy(iteratee: string): number; + + /** + * @see _.sumBy + */ + sumBy(): number; + } + + interface LoDashImplicitObjectWrapper { + /** + * @see _.sumBy + **/ + sumBy( + iteratee: ListIterator|DictionaryIterator + ): number; + + /** + * @see _.sumBy + */ + sumBy(iteratee: string): number; + + /** + * @see _.sumBy + */ + sumBy(): number; + } + + interface LoDashExplicitArrayWrapper { + /** + * @see _.sumBy + */ + sumBy( + iteratee: ListIterator + ): LoDashExplicitWrapper; + + /** + * @see _.sumBy + */ + sumBy(iteratee: string): LoDashExplicitWrapper; + + /** + * @see _.sumBy + */ + sumBy(): LoDashExplicitWrapper; + } + + interface LoDashExplicitObjectWrapper { + /** + * @see _.sumBy + */ + sumBy( + iteratee: ListIterator|DictionaryIterator + ): LoDashExplicitWrapper; + + /** + * @see _.sumBy + */ + sumBy(iteratee: string): LoDashExplicitWrapper; + + /** + * @see _.sumBy + */ + sumBy(): LoDashExplicitWrapper; + } + /********** * Number * **********/