节点上的打字稿子项

时间:2017-07-31 11:41:58

标签: javascript parsing typescript dom

在Javascript中,这段代码就像一个acharm,在Typescript中我得到以下错误:

  

'Node'类型中不存在属性'children'。

这是我的代码

    var parser = new DOMParser();
    var res = parser.parseFromString(xmldata, "text/xml")
    var branches = res.getElementsByTagName("Branch")
    branches[i].childNodes[7].children

1 个答案:

答案 0 :(得分:3)

发生错误是因为children接口的定义文件中没有字段Node。如果您尝试访问对象的属性不存在,则typescript编译器将提示错误。您可以看到整个定义文件here

所选择的子节点是Element的实例。 childNodes方法返回接口NodeList的实现,它是Node类型对象的迭代器。当您查看Element接口的定义时,您可以看到它继承了NodeChildNodeParentNode接口。 ParentNode接口是包含只读属性children的接口。您可以将类型脚本中的对象强制转换为适当的元素类型。

let el = <Element> branches[i].childNodes[7];
el.children;
// or without declaring a new variable
(<Element> branches[0].childNodes[0]).children;