在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
答案 0 :(得分:3)
发生错误是因为children
接口的定义文件中没有字段Node
。如果您尝试访问对象的属性不存在,则typescript编译器将提示错误。您可以看到整个定义文件here。
所选择的子节点是Element
的实例。 childNodes
方法返回接口NodeList
的实现,它是Node类型对象的迭代器。当您查看Element接口的定义时,您可以看到它继承了Node
,ChildNode
和ParentNode
接口。 ParentNode接口是包含只读属性children
的接口。您可以将类型脚本中的对象强制转换为适当的元素类型。
let el = <Element> branches[i].childNodes[7];
el.children;
// or without declaring a new variable
(<Element> branches[0].childNodes[0]).children;