diff --git a/underscore/underscore-tests.ts b/underscore/underscore-tests.ts index 3fb993a3d..60c1708d0 100644 --- a/underscore/underscore-tests.ts +++ b/underscore/underscore-tests.ts @@ -11,6 +11,7 @@ _.map({ one: 1, two: 2, three: 3 }, (value, key) => value * 3); //var sum = _.reduce([1, 2, 3], (memo, num) => memo + num, 0); // https://typescript.codeplex.com/workitem/1960 var sum = _.reduce([1, 2, 3], (memo, num) => memo + num, 0); sum = _.reduce([1, 2, 3], (memo, num) => memo + num); // memo is optional #issue 5 github +sum = _.reduce({'a':'1', 'b':'2', 'c':'3'}, (memo, numstr) => memo + (+numstr)); var list = [[0, 1], [2, 3], [4, 5]]; //var flat = _.reduceRight(list, (a, b) => a.concat(b), []); // https://typescript.codeplex.com/workitem/1960 diff --git a/underscore/underscore.d.ts b/underscore/underscore.d.ts index 7ff9aa5eb..03088bffd 100644 --- a/underscore/underscore.d.ts +++ b/underscore/underscore.d.ts @@ -41,18 +41,6 @@ declare module _ { escape?: RegExp; } - interface ListIterator { - (value: T, index: number, list: T[]): TResult; - } - - interface ObjectIterator { - (element: T, key: string, list: any): TResult; - } - - interface MemoIterator { - (prev: TResult, curr: T, index: number, list: T[]): TResult; - } - interface Collection { } // Common interface between Arrays and jQuery objects @@ -64,6 +52,22 @@ declare module _ { interface Dictionary extends Collection { [index: string]: T; } + + interface ListIterator { + (value: T, index: number, list: List): TResult; + } + + interface ObjectIterator { + (element: T, key: string, list: Dictionary): TResult; + } + + interface MemoIterator { + (prev: TResult, curr: T, index: number, list: List): TResult; + } + + interface MemoObjectIterator { + (prev: TResult, curr: T, key: string, list: Dictionary): TResult; + } } interface UnderscoreStatic { @@ -181,7 +185,7 @@ interface UnderscoreStatic { reduce( list: _.Dictionary, - iterator: _.ObjectIterator, + iterator: _.MemoObjectIterator, memo?: TResult, context?: any): TResult;