From 63addbc96667a9faa77985c8c96c99d0ef8c9de0 Mon Sep 17 00:00:00 2001 From: Andrey Kurdyumov Date: Fri, 4 Mar 2016 01:06:31 +0600 Subject: [PATCH] Specify interface for the resource methods This allows remove redundancy when specify other methods for the resource --- angularjs/angular-resource.d.ts | 50 ++++++++++++++++----------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts index 1e82f3154..a06df5df5 100644 --- a/angularjs/angular-resource.d.ts +++ b/angularjs/angular-resource.d.ts @@ -63,6 +63,26 @@ declare module angular.resource { responseType?: string; interceptor?: any; } + + // Allow specify more resource methods + // No need to add duplicates for all four overloads. + interface IResourceMethod { + (): T; + (params: Object): T; + (success: Function, error?: Function): T; + (params: Object, success: Function, error?: Function): T; + (params: Object, data: Object, success?: Function, error?: Function): T; + } + + // Allow specify resource moethod which returns the array + // No need to add duplicates for all four overloads. + interface IResourceArrayMethod { + (): IResourceArray; + (params: Object): IResourceArray; + (success: Function, error?: Function): IResourceArray; + (params: Object, success: Function, error?: Function): IResourceArray; + (params: Object, data: Object, success?: Function, error?: Function): IResourceArray; + } // Baseclass for everyresource with default actions. // If you define your new actions for the resource, you will need @@ -83,35 +103,15 @@ declare module angular.resource { // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L538-L549 interface IResourceClass { new(dataOrParams? : any) : T; - get(): T; - get(params: Object): T; - get(success: Function, error?: Function): T; - get(params: Object, success: Function, error?: Function): T; - get(params: Object, data: Object, success?: Function, error?: Function): T; + get: IResourceMethod; - query(): IResourceArray; - query(params: Object): IResourceArray; - query(success: Function, error?: Function): IResourceArray; - query(params: Object, success: Function, error?: Function): IResourceArray; - query(params: Object, data: Object, success?: Function, error?: Function): IResourceArray; + query: IResourceArrayMethod; - save(): T; - save(data: Object): T; - save(success: Function, error?: Function): T; - save(data: Object, success: Function, error?: Function): T; - save(params: Object, data: Object, success?: Function, error?: Function): T; + save: IResourceMethod; - remove(): T; - remove(params: Object): T; - remove(success: Function, error?: Function): T; - remove(params: Object, success: Function, error?: Function): T; - remove(params: Object, data: Object, success?: Function, error?: Function): T; + remove: IResourceMethod; - delete(): T; - delete(params: Object): T; - delete(success: Function, error?: Function): T; - delete(params: Object, success: Function, error?: Function): T; - delete(params: Object, data: Object, success?: Function, error?: Function): T; + delete: IResourceMethod; } // Instance calls always return the the promise of the request which retrieved the object