Merge pull request #851 from anchann/angulartyping

Angular: typing promises, deferreds
This commit is contained in:
Boris Yankov
2013-08-09 10:14:20 -07:00
2 changed files with 17 additions and 17 deletions

View File

@@ -29,7 +29,7 @@ angular.module('http-auth-interceptor', [])
this.$get = ['$rootScope', '$injector', <any>function ($rootScope: ng.IScope, $injector: ng.auto.IInjectorService) {
var $http: ng.IHttpService; //initialized later because of circular dependency problem
function retry(config: ng.IRequestConfig, deferred: ng.IDeferred) {
function retry(config: ng.IRequestConfig, deferred: ng.IDeferred<any>) {
$http = $http || $injector.get('$http');
$http(config).then(function (response) {
deferred.resolve(response);
@@ -118,17 +118,17 @@ module HttpAndRegularPromiseTests {
$scope.person = response.data;
});
var aPromise: ng.IPromise = $q.when({ firstName: "Jack", lastName: "Sparrow" });
var aPromise: ng.IPromise<Person> = $q.when({ firstName: "Jack", lastName: "Sparrow" });
aPromise.then((person: Person) => {
$scope.person = person;
});
var bPromise: ng.IPromise = $q.when(42);
var bPromise: ng.IPromise<number> = $q.when(42);
bPromise.then((answer: number) => {
$scope.theAnswer = answer;
});
var cPromise: ng.IPromise = $q.when(["a", "b", "c"]);
var cPromise: ng.IPromise<string[]> = $q.when(["a", "b", "c"]);
cPromise.then((letters: string[]) => {
$scope.letters = letters;
});

View File

@@ -239,8 +239,8 @@ declare module ng {
// see http://docs.angularjs.org/api/ng.$timeout
///////////////////////////////////////////////////////////////////////////
interface ITimeoutService {
(func: Function, delay?: number, invokeApply?: boolean): IPromise;
cancel(promise: IPromise): boolean;
(func: Function, delay?: number, invokeApply?: boolean): IPromise<any>;
cancel(promise: IPromise<any>): boolean;
}
///////////////////////////////////////////////////////////////////////////
@@ -399,20 +399,20 @@ declare module ng {
// see http://docs.angularjs.org/api/ng.$q
///////////////////////////////////////////////////////////////////////////
interface IQService {
all(promises: IPromise[]): IPromise;
defer(): IDeferred;
reject(reason?: any): IPromise;
when(value: any): IPromise;
all(promises: IPromise<any>[]): IPromise<any[]>;
defer<T>(): IDeferred<T>;
reject(reason?: any): IPromise<void>;
when<T>(value: T): IPromise<T>;
}
interface IPromise {
then(successCallback: (promiseValue: any) => any, errorCallback?: (reason: any) => any): IPromise;
interface IPromise<T> {
then(successCallback: (promiseValue: T) => any, errorCallback?: (reason: any) => any): IPromise<any>;
}
interface IDeferred {
resolve(value?: any): void;
interface IDeferred<T> {
resolve(value?: T): void;
reject(reason?: any): void;
promise: IPromise;
promise: IPromise<T>;
}
///////////////////////////////////////////////////////////////////////////
@@ -548,10 +548,10 @@ declare module ng {
config?: IRequestConfig;
}
interface IHttpPromise<T> extends IPromise {
interface IHttpPromise<T> extends IPromise<T> {
success(callback: IHttpPromiseCallback<T>): IHttpPromise;
error(callback: IHttpPromiseCallback<T>): IHttpPromise;
then(successCallback: (response: IHttpPromiseCallbackArg<T>) => any, errorCallback?: (response: IHttpPromiseCallbackArg<T>) => any): IPromise;
then(successCallback: (response: IHttpPromiseCallbackArg<T>) => any, errorCallback?: (response: IHttpPromiseCallbackArg<T>) => any): IPromise<any>;
}
interface IHttpProvider extends IServiceProvider {