TypeScript + AngularJS v1: rewriting angular factory in TypeScript

I am wondering how I can rewrite the next factory into TypeScript code. Here is the source code:

app.factory('errorInterceptor', function ($q) { return { responseError: function (response) { console.error("Error: " + response.statusText); return $q.reject(response); } } }); 

So far I have tried the following:

  export class errorInterceptor { constructor(private $q:ng.IQService) { } public responseError(response:any){ console.error("Error: " + response.statusText); return this.$q.reject(response); } public static getFactory(){ return errorInterceptor; } } app.factory('errorInterceptor',errorInterceptor.getFactory()); 

But I get the following error:

 Provider 'errorInterceptor' must return a value from $get factory method. 

Any ideas?

+6
source share
2 answers

I use this syntax:

 export class errorInterceptor { // to support minification static $inject = ["$q"]; constructor(private $q:ng.IQService) { } public responseError(response:any){ console.error("Error: " + response.statusText); return this.$q.reject(response); } //public static getFactory(){ // return errorInterceptor; //} } //app.factory('errorInterceptor',errorInterceptor.getFactory()); app.service('errorInterceptor',errorInterceptor); 

EXTEND:

This is the snippet I use to intercept $http calls (so it works for me)

 module MyModule { var app = angular.module("MyModule"); export class HttpErrorAspect { static $inject = ["$q"]; constructor(private $q: ng.IQService) { } public responseError = (rejection: any): any => { // do some magic, eg use toaster or alerter // to notify about the issue ... // reject that all return this.$q.reject(rejection); } } app.service("HttpErrorFilter", MyModule.HttpErrorAspect); } 
+2
source

Use this kernel: https://github.com/aleksey-pastuhov/AngularJS-Typed-Core/blob/master/AngularJSTypedCore/Script/service.ts

 @service(app) export class UserRolesService { static $inject: string[] = ["$cookies"]; private $cookies: angular.cookies.ICookiesService; user: IUser; GetUser(): IUser { return this.user; } } 

Call:

 this.userRolesService.GetUser() 
-1
source

All Articles