我有以下代码:test.html
<!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>
和 ts 文件 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 是当前节点的父节点。元素的父节点是 Element 节点、Document 节点或 DocumentFragment 节点。
这是我的测试
var ul = document.querySelector('ul')
undefined
ul.parentNode.toString()
[object HTMLDivElement]"
有人可以告诉我那有什么问题吗?
打字稿的版本是1.4
原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议
TypeScript 的 API 视图。目前没有办法说
foo.parentNode
的类型取决于foo
的类型。 Currently it is inferred to always be of typeNode
andNode
does not contain the APIquerySelector
(available onElement
)使固定
使用类型断言,如下所示: