From eea6c97557e2c21ab80a800290a77456a79df6df Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 6 May 2015 16:10:58 -0700 Subject: [PATCH] Fix ES6 Promise typings so that a void error callback does not mess up inference --- es6-promise/es6-promise-tests.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/es6-promise/es6-promise-tests.ts b/es6-promise/es6-promise-tests.ts index dc54f3b1ba..0980ac26cc 100644 --- a/es6-promise/es6-promise-tests.ts +++ b/es6-promise/es6-promise-tests.ts @@ -160,3 +160,32 @@ getJSON('story.json').then(function(story: Story) { }).then(function() { (document.querySelector('.spinner')).style.display = 'none'; }); + +interface T1 { + __t1: string; +} + +interface T2 { + __t2: string; +} + +interface T3 { + __t3: string; +} + +function f1(): Promise { + return Promise.resolve({ __t1: "foo_t1" }); +} + +function f2(x: T1): T2 { + return { __t2: x.__t1 + ":foo_21" }; +} + +var x3 = f1() + .then(f2, (e: Error) => { + console.log("error 1"); + throw e; +}) + .then((x: T2) => { + return { __t3: x.__t2 + "bar" }; +}); \ No newline at end of file