Property 'querySelector' does not exist on type 'Node'.

这个是我的代码

<!DOCTYPE html>
<html>
<head lang="zh-CN">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <title></title>
</head>
<body>
    <div id="container">
        <div id="box"></div>
    </div>
    <script src="test.js"></script>
</body>
</html>

这个是test.ts文件

var box = document.querySelector('#box');
console.log(box.parentNode.querySelector('#box'));

额,这行代码有问题:

Error:(2, 28) TS2339: Property 'querySelector' does not exist on type 'Node'.

但是我发现MDN的文档有如下说明

parentNode is the parent of the current node. The parent of an element is an Element node, a Document node, or a DocumentFragment node.

然后我又进行了如下测试

var ul = document.querySelector('ul')
undefined
ul.parentNode.toString()
[object HTMLDivElement]"

好吧,parentNode返回的类型不是Node,拿这个报错又是怎么回事
typescript的版本是1.4

回复
阅读 4.6k
1 个回答

HTMLDivElement继承自Node 也能用querySelector吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题