在打字稿中,如何使用传播语法为 querySelectorAll 设置类型

Mar*_*ing 0 selectors-api typescript spread-syntax

我有这个代码。

const elements = [...document.querySelectorAll('.someClass')]
Run Code Online (Sandbox Code Playgroud)

的组合:

  • 查询选择器全部
  • 点差运算符

我不知道如何将 Typescript 类型添加到这一行。

我从控制台收到错误:

TS2548: Type 'NodeListOf<Element>' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.
Run Code Online (Sandbox Code Playgroud)

bas*_*rat 5

当您定位时es5它不起作用,因为 TypeScript 不支持填充/多文件Symbol.iterator

如果你瞄准es6它会起作用。

或者,您可以使用Array.from以下lib选项:

const elements = [...Array.from(document.querySelectorAll('.someClass'))]
Run Code Online (Sandbox Code Playgroud)

或者更简单:

const elements = Array.from(document.querySelectorAll('.someClass'))
Run Code Online (Sandbox Code Playgroud)