我正在尝试访问TypeScript中对象的子项。
所以object1是Object的子代。当我控制日志对象(父对象)时,我清楚地看到了属性' Children'。如果我展开Children,我会看到Object1。
通常在JavaScript中,我会做类似
的事情var child = Object.children[0];
但是,当我在TypeScript中执行此操作时,会出现语法错误
错误TS2339:财产'儿童'类型' DisplayObject'。
上不存在
在TS中有不同的方法吗?
修改
示例代码:
this.game.world.children.forEach(function(child){
var constructorString: string = child.constructor.toString();
var className: string = constructorString.match(/\w+/g)[1];
if(className=='AcheivmentButton'){
for(var i=0; i<child.children.length; i++)
children.push(child.children[i]);
}
})
答案 0 :(得分:1)
在TS中有不同的方法吗?
没有。这只是您正在使用的对象定义中的差异。
最快的方法是简单地使用断言:
var child = (Object as any).children[0];
关于环境声明及其尽力而为的性质:https://basarat.gitbooks.io/typescript/content/docs/types/type-assertion.html