Búsqueda de sitios web

angularjs - Creando un $provider con typescript


Estoy intentando crear un proveedor $ utilizando un método bastante simple trasladado de mi aplicación angularjs.

El original

(function(){
    var app = angular.module('app',[]);

    app.config(function($provide) {

         $provide.provider('foo',function(){
              this.$get = function(){
                  var foo = 'foo';
                  return {
                      foo:foo
                  }
              }
         }
    }  

}());

Es bastante sencillo. Sin embargo, cuando intento implementar esto en TypeScript, obtengo un error en this.$get -> La propiedad get no existe

export interface IFooConfig {
    foo:string;
}

export class FooConfig implements IFooConfig {

    static $inject = ["$injector","$provide"];
    constructor(private $provide : angular.auto.IProvideService,
                public foo:string
    ) {   

         $provide.provider('foo',() =>{
             this.$get = () => {  // error here on this.$get
                 this.foo = "foo";

                 return {
                     foo:this.foo
                 }
             }
         })
      }

   }

   angular.module("app").config(FooConfig);
}

Siento que esto debería funcionar, de lo contrario estoy haciendo algo muy fundamentalmente incorrecto