diff --git a/angularjs/angular-tests.ts b/angularjs/angular-tests.ts index 11f1e327b..616837706 100644 --- a/angularjs/angular-tests.ts +++ b/angularjs/angular-tests.ts @@ -272,6 +272,48 @@ httpFoo.success((data, status, headers, config) => { hs["content-type"].charAt(1); }); + +// Promise signature tests +module TestPromise { + var result: any; + var any: any; + + interface TResult { + a: number; + b: string; + c: boolean; + } + + var promise: angular.IPromise; + interface IPromiseSuccessCallback { + (promiseValue: T): angular.IHttpPromise|angular.IPromise|U|angular.IPromise; + } + var successCallbackAnyFn: IPromiseSuccessCallback; + var successCallbackTResultFn: IPromiseSuccessCallback; + interface IPromiseErrorCallback { + (error: any): angular.IHttpPromise|angular.IPromise|T; + } + var errorCallbackAnyFn: IPromiseErrorCallback; + var errorCallbackTResultFn: IPromiseErrorCallback; + + // promise.then + result = >promise.then(successCallbackAnyFn); + result = >promise.then(successCallbackAnyFn, (any) => any); + result = >promise.then(successCallbackAnyFn, (any) => any, (any) => any); + result = >promise.then(successCallbackTResultFn); + result = >promise.then(successCallbackTResultFn, (any) => any); + result = >promise.then(successCallbackTResultFn, (any) => any, (any) => any); + + // promise.catch + result = >promise.catch(errorCallbackAnyFn); + result = >promise.catch(errorCallbackTResultFn); + + // promise.finally + result = >promise.finally(() => any); + result = >promise.finally(() => any); +} + + function test_angular_forEach() { var values: { [key: string]: string } = { name: 'misko', gender: 'male' }; var log: string[] = [];