簡體   English   中英

JavaScript 的 VS Code Intellisense 不起作用?

[英]VS Code Intellisense for JavaScript is not working?

我正在嘗試遍歷一堆按鈕,以便為每個按鈕提供一個事件偵聽器,一旦我單擊它們中的任何一個,它就會更改背景顏色,但是 vs code 的 IntelliSense 不會自動完成我正在尋找的所需屬性。風格。

代碼片段

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">Click me</button>
        <button class="btn">Click me</button>
        <button class="btn">Click me</button>
        <button class="btn">Click me</button>
    </section>
    <script src="app.js"></script>
</body>

VS Code intellisense 不會推薦斜體的 code.style 和.backgroundColor

它發生在塊和 scope 級別以及全球級別。

問題是document.querySelectorAll被指定給你一個包含Element對象的NodeList ,一個通用的基礎 class。 因此,就 JavaScript IntelliSense 可以推斷而言,每個button只是Element的一個實例。 但是style屬性存在於HTMLElement上。 因此,您需要“告訴” IntelliSense 引擎buttons將成為HTMLElementNodeList ,您可以使用 JSDoc 來完成:

/** @type {NodeListOf<HTMLElement>} */
const buttons = document.querySelectorAll('btn');

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM