Merge pull request #6480 from chrootsu/lodash-sum

lodash: signatures of the method _.sum changed
This commit is contained in:
Masahiro Wakame
2015-11-02 21:47:43 +09:00
2 changed files with 193 additions and 147 deletions
+69 -17
View File
@@ -2102,23 +2102,6 @@ module TestMap {
}
}
result = <number>_.sum([4, 2, 8, 6]);
result = <number>_.sum([4, 2, 8, 6], function(v) { return v; });
result = <number>_.sum({a: 2, b: 4});
result = <number>_.sum({a: 2, b: 4}, function(v) { return v; });
result = <number>_.sum(stoogesAges, function (stooge) { return stooge.age; });
result = <number>_.sum(stoogesAges, 'age');
result = <number>_.sum(stoogesAgesDict, function(stooge) { return stooge.age; });
result = <number>_.sum(stoogesAgesDict, 'age');
result = <number>_([4, 2, 8, 6]).sum();
result = <number>_([4, 2, 8, 6]).sum(function(v) { return v; });
result = <number>_({a: 2, b: 4}).sum();
result = <number>_({a: 2, b: 4}).sum(function(v) { return v; });
result = <number>_(stoogesAges).sum(function (stooge) { return stooge.age; });
result = <number>_(stoogesAges).sum('age');
result = <number>_(stoogesAgesDict).sum(function (stooge) { return stooge.age; });
result = <number>_(stoogesAgesDict).sum('age');
result = <string[]>_.pluck(stoogesAges, 'name');
result = <string[]>_(stoogesAges).pluck('name').value();
result = <string[]>_.pluck(stoogesAges, ['name']);
@@ -3152,6 +3135,75 @@ module TestRound {
}
}
// _.sum
module TestSum {
let array: number[];
let list: _.List<number>;
let dictionary: _.Dictionary<number>;
let listIterator: (value: number, index: number, collection: _.List<number>) => number;
let dictionaryIterator: (value: number, key: string, collection: _.Dictionary<number>) => number;
{
let result: number;
result = _.sum(array);
result = _.sum<number>(array);
result = _.sum<number>(array, listIterator);
result = _.sum<number>(array, listIterator, any);
result = _.sum<number>(array, '');
result = _.sum(list);
result = _.sum<number>(list);
result = _.sum<number>(list, listIterator);
result = _.sum<number>(list, listIterator, any);
result = _.sum<number>(list, '');
result = _.sum(dictionary);
result = _.sum<number>(dictionary);
result = _.sum<number>(dictionary, dictionaryIterator);
result = _.sum<number>(dictionary, dictionaryIterator, any);
result = _.sum<number>(dictionary, '');
result = _(array).sum();
result = _(array).sum(listIterator);
result = _(array).sum(listIterator, any);
result = _(array).sum('');
result = _(list).sum();
result = _(list).sum<number>(listIterator);
result = _(list).sum<number>(listIterator, any);
result = _(list).sum('');
result = _(dictionary).sum();
result = _(dictionary).sum<number>(dictionaryIterator);
result = _(dictionary).sum<number>(dictionaryIterator, any);
result = _(dictionary).sum('');
}
{
let result: _.LoDashExplicitWrapper<number>;
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<number>(listIterator);
result = _(list).chain().sum<number>(listIterator, any);
result = _(list).chain().sum('');
result = _(dictionary).chain().sum();
result = _(dictionary).chain().sum<number>(dictionaryIterator);
result = _(dictionary).chain().sum<number>(dictionaryIterator, any);
result = _(dictionary).chain().sum('');
}
}
/**********
* Number *
**********/
+124 -130
View File
@@ -4538,136 +4538,6 @@ declare module _ {
): LoDashImplicitArrayWrapper<boolean>;
}
//_.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>): number;
/**
* @see _.sum
**/
sum(
collection: List<number>): number;
/**
* @see _.sum
**/
sum(
collection: Dictionary<number>): number;
/**
* @see _.sum
**/
sum<T>(
collection: Array<T>,
iteratee: ListIterator<T, number>,
thisArg?: any): number;
/**
* @see _.sum
**/
sum<T>(
collection: List<T>,
iteratee: ListIterator<T, number>,
thisArg?: any): number;
/**
* @see _.sum
**/
sum<T>(
collection: Dictionary<T>,
iteratee: ObjectIterator<T, number>,
thisArg?: any): number;
/**
* @see _.sum
* @param property _.property callback shorthand.
**/
sum<T>(
collection: Array<T>,
property: string): number;
/**
* @see _.sum
* @param property _.property callback shorthand.
**/
sum<T>(
collection: List<T>,
property: string): number;
/**
* @see _.sum
* @param property _.property callback shorthand.
**/
sum<T>(
collection: Dictionary<T>,
property: string): number;
}
interface LoDashImplicitNumberArrayWrapper {
/**
* @see _.sum
**/
sum(): number;
/**
* @see _.sum
**/
sum(
iteratee: ListIterator<number, number>,
thisArg?: any): number;
}
interface LoDashImplicitArrayWrapper<T> {
/**
* @see _.sum
**/
sum(): number;
/**
* @see _.sum
**/
sum(
iteratee: ListIterator<T, number>,
thisArg?: any): number;
/**
* @see _.sum
* @param property _.property callback shorthand.
**/
sum(
property: string): number;
}
interface LoDashImplicitObjectWrapper<T> {
/**
* @see _.sum
**/
sum(): number;
/**
* @see _.sum
**/
sum(
iteratee: ObjectIterator<any, number>,
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<number>;
}
//_.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<T>(
collection: List<T>,
iteratee: ListIterator<T, number>,
thisArg?: any
): number;
/**
* @see _.sum
**/
sum<T>(
collection: Dictionary<T>,
iteratee: DictionaryIterator<T, number>,
thisArg?: any
): number;
/**
* @see _.sum
*/
sum<T>(
collection: List<number>|Dictionary<number>,
iteratee: string
): number;
/**
* @see _.sum
*/
sum<T>(collection: List<T>|Dictionary<T>): number;
/**
* @see _.sum
*/
sum(collection: List<number>|Dictionary<number>): number;
}
interface LoDashImplicitArrayWrapper<T> {
/**
* @see _.sum
*/
sum(
iteratee: ListIterator<T, number>,
thisArg?: any
): number;
/**
* @see _.sum
*/
sum(iteratee: string): number;
/**
* @see _.sum
*/
sum(): number;
}
interface LoDashImplicitObjectWrapper<T> {
/**
* @see _.sum
**/
sum<TValue>(
iteratee: ListIterator<TValue, number>|DictionaryIterator<TValue, number>,
thisArg?: any
): number;
/**
* @see _.sum
*/
sum(iteratee: string): number;
/**
* @see _.sum
*/
sum(): number;
}
interface LoDashExplicitArrayWrapper<T> {
/**
* @see _.sum
*/
sum(
iteratee: ListIterator<T, number>,
thisArg?: any
): LoDashExplicitWrapper<number>;
/**
* @see _.sum
*/
sum(iteratee: string): LoDashExplicitWrapper<number>;
/**
* @see _.sum
*/
sum(): LoDashExplicitWrapper<number>;
}
interface LoDashExplicitObjectWrapper<T> {
/**
* @see _.sum
*/
sum<TValue>(
iteratee: ListIterator<TValue, number>|DictionaryIterator<TValue, number>,
thisArg?: any
): LoDashExplicitWrapper<number>;
/**
* @see _.sum
*/
sum(iteratee: string): LoDashExplicitWrapper<number>;
/**
* @see _.sum
*/
sum(): LoDashExplicitWrapper<number>;
}
/**********
* Number *
**********/