【发布时间】:2017-07-15 21:55:15
【问题描述】:
我正在访问这样的范围:
let element = angular.element(document.getElementsByClassName('active'));
let scope = element.scope();
当我执行 a 时,我的范围对象看起来像这样
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”类型上不存在属性“匹配”。
并打印出 scope.$id 工作
console.log(scope.$id);
我知道在文档中定义了 $id 以便工作。 http://definitelytyped.org/docs/angularjs--angular-route/interfaces/ng.iscope.html
如何打印出我的成员变量 scope.match 而不会出现 Typescript 错误?我想我需要扩展 ng.IScope?
【问题讨论】:
-
听起来在控制台日志时属性
match没有添加到范围中。你能添加一个最小的工作示例吗? -
是否可以检查范围属性?
if (scope.match == null)因错误 TS2339 而无法工作。 -
您始终可以使用
if (angular.isUndefined(scope.match)),但您应该真正弄清楚为什么要尝试访问尚未存在的属性。 -
我尝试了
isUndefined(),但我在执行scope.match时遇到了同样的错误 -
再一次,如果我没有可以重现您的问题的示例,我真的无法为您提供帮助..
标签: javascript angularjs typescript