В Typescript, как я могу установить типы для querySelectorAll с синтаксисом распространения - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть этот код.

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

Сочетание:

  • querySelectorAll
  • оператор распространения

Я могуне могу понять, как добавить типы Typescript в эту строку.

Я получаю сообщения об ошибках из консоли:

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

1 Ответ

0 голосов
/ 06 сентября 2018

Когда вы выбираете es5, это не работает, поскольку TypeScript не поддерживает заполнение / полифилирование для Symbol.iterator

Если вы нацелились на es6, это сработает.

В качестве альтернативы вы можете использовать Array.from, используя опцию lib:

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

Или проще:

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