From b545524610b8dffbe787b8d7e001ee2bcfa6b69f Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 4 Dec 2015 14:04:52 -0500 Subject: [PATCH 1/2] RequestPromise to extend Promise The current then/catch/finally in RequestPromise don't have proper definition. As a result `await` in Typescript 1.7 fails during compilation blaming that there's no proper `then` implementation. --- request-promise/request-promise.d.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/request-promise/request-promise.d.ts b/request-promise/request-promise.d.ts index d442e527f..b35856277 100644 --- a/request-promise/request-promise.d.ts +++ b/request-promise/request-promise.d.ts @@ -12,10 +12,7 @@ declare module 'request-promise' { import request = require('request'); import http = require('http'); - interface RequestPromise extends request.Request { - then(onFulfilled: Function, onRejected?: Function): Promise; - catch(onRejected: Function): Promise; - finally(onFinished: Function): Promise; + interface RequestPromise extends request.Request, Promise { promise(): Promise; } From 14cc56099a4c90926839e406a87d36596d093708 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 5 Dec 2015 07:16:13 -0500 Subject: [PATCH 2/2] Overload then, catch, finally definitions --- request-promise/request-promise.d.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/request-promise/request-promise.d.ts b/request-promise/request-promise.d.ts index b35856277..6b5f23fd4 100644 --- a/request-promise/request-promise.d.ts +++ b/request-promise/request-promise.d.ts @@ -12,7 +12,13 @@ declare module 'request-promise' { import request = require('request'); import http = require('http'); - interface RequestPromise extends request.Request, Promise { + interface RequestPromise extends request.Request { + then(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): Promise; + then(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): Promise; + catch(onrejected?: (reason: any) => any | PromiseLike): Promise; + catch(onrejected?: (reason: any) => void): Promise; + finally(handler: () => PromiseLike): Promise; + finally(handler: () => TResult): Promise; promise(): Promise; }