注射在Typescript中不起作用

时间:2016-07-22 08:51:08

标签: javascript angularjs typescript

我正在使用Typescript使用Angular 1进行Web应用。我必须创建一个工厂,其中我有一些条件,我想要注入一些依赖。这是代码:

.factory('myFactory', function ($q: angular.IQService, $location: ng.ILocationService, $localStorage: any, Ob: any, $injector: ng.auto.IInjectorService) {
        return {
        f: function (config: any) {
            config.headers = config.headers || {};
            if (Ob.auth) {
                let $state = $injector.get("$state");
                $state.go("app.auth");
            }
            return config;
        },
   .... other methods....
        };
})

编译时我在控制台中出现此错误:

ts\inj.ts(110,14): error TS2339: Property 'go' does not exist on type '{}'.
ts\inj.ts(126,13): error TS2339: Property 'go' does not exist on type '{}'.
[10:46:55] TypeScript: 2 semantic errors
[10:46:55] TypeScript: emit succeeded (with errors)

我该如何解决?

1 个答案:

答案 0 :(得分:0)

查看this page它看起来不像$ state对象有go()方法,这就是TypeScript抛出错误的原因。您的意思是使用$state.get()吗?