作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在访问这样的范围:
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): error TS2339: Property 'match' does not exist on type 'IScope'.
并打印出 scope.$id 有效
console.log(scope.$id);
我知道它与文档中定义的 $id 相关,因此可以正常工作。 http://definitelytyped.org/docs/angularjs--angular-route/interfaces/ng.iscope.html
如何在不出现 Typescript 错误的情况下打印出我的成员变量 scope.match
?我想我需要扩展 ng.IScope 吗?
最佳答案
我能够通过导出接口(interface)然后转换 ng.IScope 来解决问题。
确保使用 ? 使其成为可选参数。那是我出错的地方
export interface IMyScope extends ng.IScope {
match?: any;
}
然后:
let myScope = <IMyScope>element.scope();
关于javascript - 如何向 ng.Iscope 添加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42449276/
我是一名优秀的程序员,十分优秀!