如何摆脱TypeScript中的$ injector类型错误?

时间:2016-03-01 10:00:18

标签: angularjs typescript angular-ui-router

我的AngularJS代码中有以下内容:

this.$injector.get('$state').current.name !== 'login'

然而,它引发了我的错误:

  

错误TS2339:类型“{}”上不存在属性“当前”。

你知道如何解决这个问题吗?

更新

我试过这个:

export namespace NewInjector extends angular.auto.IInjectorService {
    current: any;
};

没有任何成功。

1 个答案:

答案 0 :(得分:6)

get()的{​​{1}}方法返回的值是任何..没有 $injector 属性...所以我们只需断言编译器,我们知道将返回什么(而不是current

any

另一种表示法

var state = this.$injector.get('$state') as ng.ui.IStateService;
var isNotLogin = state.current.name !== "login";
...

快速概述var state = this.$injector.get<ng.ui.IStateService>('$state');

IInjectorService