typescript 类型“Node”上不存在属性“length”,类型脚本错误

rlcwz9us  于 2023-02-05  发布在  TypeScript
关注(0)|答案(1)|浏览(368)

我正在处理一个项目,遇到了Property 'length' does not exist on type 'Node'.的打字错误

我已经从javascript中的选择对象中解构了anchorNode

const selection = window.getSelection()
const {anchorNode} = selection;

尽管我能够读取anchorNode的length属性,但类型脚本表明它在类型Node上不存在。
我该怎么补救呢?

huus2vyu

huus2vyu1#

锚通常返回单个Node对象,因此,如果查看Node属性,可以看到没有length属性。
当然,javascript可以尝试做一些幕后的魔术,比如类型转换和给予你长度,但是typescript只是说类没有this length属性。
我不知道你想从anchorNode中得到什么长度,但我想这是他的孩子的长度,你可以使用:

const length = anchorNode.childNodes.length;

这是一段获取anchorNode下DOM元素的代码,由于childNodes返回一个NodeList,因此我们可以从中获取property length
现在,如果你想要文本长度,那么只需要从节点中提取文本:

const length = anchorNode.textContent.length;

请记住,提取的文本包括text from the children as well.

相关问题