es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿VS Code Intellisense para JavaScript no está funcionando?

Estoy intentando iterar sobre un conjunto de botones para asignar a cada uno de ellos un escuchador de eventos que cambiará el color de fondo una vez que haga clic en cualquiera de ellos, pero el IntelliSense de VS Code no autocompletará la propiedad deseada que estoy buscando, como .style .

Código:

const buttons = document.querySelectorAll('btn');

for(let button of buttons) {
    button.addEventListener('click', () => {
        button.style.backgroundColor = 'red';
    })
}

HTML:

<body>
    <section id="container">
        <button class="btn">Haz clic</button>
        <button class="btn">Haz clic</button>
        <button class="btn">Haz clic</button>
        <button class="btn">Haz clic</button>
    </section>
    <script src="app.js"></script>
</body>

El IntelliSense de VS Code no recomendará el código en cursiva .style y .backgroundColor.

Esto sucede tanto a nivel de bloque y alcance como a nivel global.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver este problema, puedes agregar una afirmación de tipo para que VS Code sepa que el elemento de botón tiene una propiedad de estilo:

    const buttons = document.querySelectorAll('.btn');
    
    for (let button of buttons) {
      button.addEventListener('click', () => {
        (button as HTMLElement).style.backgroundColor = 'red';
      });
    }
    

    Al agregar (button as HTMLElement), le estás diciendo a VS Code que el elemento de botón es del tipo HTMLElement y, por lo tanto, tiene una propiedad de estilo a la que puedes acceder. Esto debería permitir que la función IntelliSense autocomplete la propiedad .style.backgroundColor.

Comments are closed.