From a671b4eb5600b6c2d4d19836d826d94220061ee1 Mon Sep 17 00:00:00 2001 From: basarat Date: Sat, 7 Sep 2013 23:46:10 +1000 Subject: [PATCH] underscore Value returns TResult as its the end of the chain. Added test for #1016 --- underscore/underscore-tests.ts | 46 +++++++++++++++++++++------------- underscore/underscore.d.ts | 2 +- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/underscore/underscore-tests.ts b/underscore/underscore-tests.ts index b53a23683..4c7d85688 100644 --- a/underscore/underscore-tests.ts +++ b/underscore/underscore-tests.ts @@ -158,23 +158,6 @@ _.defaults(iceCream, { flavor: "vanilla", sprinkles: "lots" }); _.clone({ name: 'moe' }); _.clone(['i', 'am', 'an', 'object!']); - -_([1, 2, 3, 4]) - .chain() - .filter((num: number) => { - return num % 2 == 0; - }).tap(alert) - .map((num: number) => { - return num * num; - }) - .value(); - -_.chain([1, 2, 3, 200]) - .filter(function (num: number) { return num % 2 == 0; }) - .tap(alert) - .map(function (num: number) { return num * num }) - .value(); - _.has({ a: 1, b: 2, c: 3 }, "b"); var moe = { name: 'moe', luckyNumbers: [13, 27, 34] }; @@ -268,3 +251,32 @@ _.template("Using 'with': <%= data.answer %>", { answer: 'no' }, { variable: 'da _(['test', 'test']).pick(['test2', 'test2']); + + +//////////////// Chain Tests +function chain_tests() { + var list:number[] = _.chain([1, 2, 3, 4, 5, 6, 7, 8]) + .filter(n => n % 2 == 0) + .map(n => n * n) + .value(); + + _([1, 2, 3, 4]) + .chain() + .filter((num: number) => { + return num % 2 == 0; + }).tap(alert) + .map((num: number) => { + return num * num; + }) + .value(); + + _.chain([1, 2, 3, 200]) + .filter(function (num: number) { return num % 2 == 0; }) + .tap(alert) + .map(function (num: number) { return num * num }) + .value(); +} + + + + \ No newline at end of file diff --git a/underscore/underscore.d.ts b/underscore/underscore.d.ts index 0b896a7ad..ffb6ed816 100644 --- a/underscore/underscore.d.ts +++ b/underscore/underscore.d.ts @@ -2847,7 +2847,7 @@ interface _Chain { * Wrapped type `any`. * @see _.value **/ - value(): _Chain; + value(): TResult; } declare module "underscore" {