Вчера я написал код, который работал нормально и не выводил ошибок, сегодня я не смог скомпилировать его, так как ошибка говорила: «Тип 'HTMLCollectionOf' не является типом массива или типом строки."
public myClassCollection: HTMLCollectionOf<Element> = document.getElementsByClassName('myClass');
//I added ": HTMLCollectionOf<Element>" part as I saw it seemed to work with NodeList
ngOnInit() {
this.onChange();
console.log(this.page);
}
@HostListener('window:resize') onResize() {
this.onChange();
}
public onChange() {
if (window.innerWidth <= 992) {
for (const pageItem of this.myClassCollection) {
pageItem.classList.add('hide');
}
} else {
for (const pageItem of this.myClassCollection) {
pageItem.classList.remove('hide');
}
}
}
Если я прокомментирую эти строки, скомпилирую, а затем добавлю их, это неожиданно сработает (с ошибкой, но все работает как надо). Странно, как я оставил это работать ...
Благодаря this Я заметил, что код начинает работать, когда я добавляю перед this.myClassCollection, вот так
for (const pageItem of this.myClassCollection) {
pageItem.classList.remove('hide');
}
но я до сих пор не понимаю, почему это сработало раньше? Ничего не изменилось