如何向ng.Iscope添加属性?

时间:2017-02-24 22:21:21

标签: javascript angularjs typescript

我正在访问这样的范围:

  let element = angular.element(document.getElementsByClassName('active'));
  let scope = element.scope();

当我做

时,我的范围对象看起来像这样
console.log(scope);
  

$id:2017 $parent:ChildScope $root:Scope __private__:Object index:0 match:Object __proto__:Object

然而,当我尝试做的时候:

console.log(scope.match);

Typescript给出语法错误:

  

(27,34):错误TS2339:'IScope'类型中不存在属性'匹配'。

打印范围。$ id有效

console.log(scope.$id);

我知道它有一些事情需要在文档中定义$ id才能起作用。 http://definitelytyped.org/docs/angularjs--angular-route/interfaces/ng.iscope.html

如何在不收到Typescript错误的情况下打印出我的成员变量scope.match?我想我需要扩展ng.IScope?

1 个答案:

答案 0 :(得分:2)

我能够通过导出界面然后转换ng.IScope来解决问题。

确保使用使其成为可选参数。这就是我出错的地方

export interface IMyScope extends ng.IScope {
  match?: any;
}

然后:

let myScope = <IMyScope>element.scope();