TS использование HTMLElement вместо Node as HTMLElement
Дело в том, что TS возвращает node list после метода querySelectorAll. В дальнейшем при переборе в forEach приходится утверждать каждый элемент как HTMLElement для того, что-бы достучаться до таких методов как classList. Выглядит это так: (element as HTMLElement).previousElementSibling. А как сделать вот так element.previousElementSibling? Не понимаю.
Было:
const a = doc.querySelectorAll('.some').forEach((el) => (el as HTMLElement).classList.add('classes'));
Хочу чтобы стало:
const a = doc.querySelectorAll('.some').forEach((el) => el.classList.add('classes'));
Ответы (1 шт):
Автор решения: Denis Lopatin
→ Ссылка
querySelectorAll принимает параметр полиморфного типа, что-бы избавиться от проблемы можно написать следующее:
const a = document.querySelectorAll<HTMLElement>('.some')
или если нужно использовать в классах:
protected readonly elements: NodeListOf<HTMLElement>