From e839251ce94156ade3089e04b1e1158bc39c26d8 Mon Sep 17 00:00:00 2001 From: Herbert Poul Date: Fri, 27 Jun 2014 10:48:30 +0200 Subject: [PATCH] Changed order of IHttpPromise.then for promise chaining previously the following code resulted in tmp beeing of type: ng.IPromise> but it should be just ng.IPromise<{}>: var tmp = this.$http.get('').then((result) => this.$q.defer().promise); --- angularjs/angular-tests.ts | 11 +++++++++++ angularjs/angular.d.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/angularjs/angular-tests.ts b/angularjs/angular-tests.ts index bb859c26a..37dae22f4 100644 --- a/angularjs/angular-tests.ts +++ b/angularjs/angular-tests.ts @@ -220,6 +220,17 @@ foo.then((x) => { }); +var httpFoo: ng.IHttpPromise; +httpFoo.then((x) => { + // When returning a promise the generic type must be inferred. + var innerPromise : ng.IPromise; + return innerPromise; +}).then((x) => { + // must still be number. + x.toFixed(); +}); + + // angular.element() tests var element = angular.element("div.myApp"); var scope: ng.IScope = element.scope(); diff --git a/angularjs/angular.d.ts b/angularjs/angular.d.ts index c7f0882d4..aa61fd6a5 100755 --- a/angularjs/angular.d.ts +++ b/angularjs/angular.d.ts @@ -801,8 +801,8 @@ declare module ng { interface IHttpPromise extends IPromise { success(callback: IHttpPromiseCallback): IHttpPromise; error(callback: IHttpPromiseCallback): IHttpPromise; - then(successCallback: (response: IHttpPromiseCallbackArg) => TResult, errorCallback?: (response: IHttpPromiseCallbackArg) => any): IPromise; then(successCallback: (response: IHttpPromiseCallbackArg) => IPromise, errorCallback?: (response: IHttpPromiseCallbackArg) => any): IPromise; + then(successCallback: (response: IHttpPromiseCallbackArg) => TResult, errorCallback?: (response: IHttpPromiseCallbackArg) => any): IPromise; } interface IHttpProvider extends IServiceProvider {