我正在访问这样的范围:
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?
答案 0 :(得分:2)
我能够通过导出界面然后转换ng.IScope来解决问题。
确保使用?使其成为可选参数。这就是我出错的地方
export interface IMyScope extends ng.IScope {
match?: any;
}
然后:
let myScope = <IMyScope>element.scope();