在Typescript中,如何使用扩展语法设置querySelectorAll的类型

在Typescript中,如何使用扩展语法设置querySelectorAll的类型,typescript,selectors-api,spread-syntax,Typescript,Selectors Api,Spread Syntax,我有这个密码 const elements = [...document.querySelectorAll('.someClass')] 结合: 查询选择器 扩展运算符 我不知道如何将Typescript类型添加到此行 我从控制台获得错误: TS2548: Type 'NodeListOf<Element>' is not an array type or does not have a '[Symbol.iterator]()' method that returns an

我有这个密码

const elements = [...document.querySelectorAll('.someClass')]
结合:

  • 查询选择器
  • 扩展运算符
我不知道如何将Typescript类型添加到此行

我从控制台获得错误:

TS2548: Type 'NodeListOf<Element>' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.
TS2548:类型“NodeListOf”不是数组类型,或者没有返回迭代器的“[Symbol.iterator]”方法。

当您以
es5
为目标时,它不起作用,因为TypeScript不支持为
符号填充/polyFilling。迭代器

如果您以es6为目标,它将起作用

或者,您可以使用
数组。从
使用
lib
选项:

const elements = [...Array.from(document.querySelectorAll('.someClass'))]
或者更简单地说:

const elements = Array.from(document.querySelectorAll('.someClass'))

当您以
es5
为目标时,它不起作用,因为TypeScript不支持对
Symbol.iterator进行填充/polyfiling

如果您以es6为目标,它将起作用

或者,您可以使用
数组。从
使用
lib
选项:

const elements = [...Array.from(document.querySelectorAll('.someClass'))]
或者更简单地说:

const elements = Array.from(document.querySelectorAll('.someClass'))

非常感谢,我将尝试
Array.from()
建议。我认为巴贝尔的转换是不完美的,打字稿在原则上坚持真正的转换,这是对的吗?因此,无法像巴贝尔那样选择转换spread运算符。我是Typescript的初学者,有没有推荐的方法来“键入”数组
from()
版本?非常感谢,我将尝试
数组.from()
建议。我认为巴贝尔的转换是不完美的,打字稿在原则上坚持真正的转换,这是对的吗?因此,无法像巴贝尔那样选择转换spread运算符。我是Typescript的初学者,有没有推荐的方法来“键入”
Array.from()
version?