Conversion de mon JS en mode strict TS (gros maux de tête haha)
La syntaxe suivante me semble correcte mais TS se plaint dans la boucle for
sur allSubMenus
avec:
[ts] Type 'NodeListOf<Element>' is not an array type or a string type.
qu'est-ce qui me manque s'il te plait
function subAct(target:Node){
const allSubMenus : NodeListOf<Element> = document.querySelectorAll('.subMenuItems')
for (const sub of allSubMenus){
sub.classList.remove('active')
}
}
Vous devez définir l'option de compilateur target
sur es6
ou supérieur pour NodeListOf<T>
pour être itérable.
Il s'agit d'une erreur d'analyse latérale de TypeScript. J'ai eu le même problème avec HTMLCollectionOf
faites-le comme tout, cela fonctionne pour moi
const allSubMenus : NodeListOf<Element> = document.querySelectorAll('.subMenuItems')
for (const sub of allSubMenus as any){ // then will pass compiler
sub.classList.remove('active')
}
Tu pourrais essayer
const allSubMenus : NodeListOf<Element> = document.querySelectorAll('.subMenuItems')
Array.from(allSubMenus).map(subMenu => {/* */})