gpt4 book ai didi

javascript - 类型 'querySelector' 上不存在属性 'Node'。在 typescript 中

转载 作者:数据小太阳 更新时间:2023-10-29 04:24:20 24 4
gpt4 key购买 nike

我有以下代码:测试.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]"

有人能告诉我这有什么问题吗?

typescript 的版本是1.4

最佳答案

could someone tell me what's wrong with that

TypeScript 对 API 的看法。目前还没有办法说 foo.parentNode 的类型取决于 foo 的类型。目前,它被推断为始终是 Node 类型,并且 Node 不包含 API querySelector(在 Element 上可用) )

修复

使用类型断言,如下所示:

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

关于javascript - 类型 'querySelector' 上不存在属性 'Node'。在 typescript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com