首页 > 解决方案 > 为什么 IntelliSense 无法将我的查询选定项识别为元素?

问题描述

问题

我试图弄清楚为什么当我访问 HTML 元素时 VSCode 的 IntelliSense 不会建议元素对象属性:

document.querySelector();

每当我使用该document.querySelector()方法然后使用.运算符尝试查看所选元素的属性时,我都没有得到 CSS 属性列表,例如style

例子

我的 HTML 文件中有一个 div 元素,其类为“list”

<div class='list'>

在我的 .js 文件中,我可以通过以下方式访问该元素:

const listElement = document.querySelector('.list');

我的问题是在使用.运算符时listElement,VSCode 不显示基本属性,例如style. 我仍然可以通过手动输入类似的东西来设置东西

listElement.style.display = 'none';

但是当我使用.运算符时 VSCode 不建议style,当我键入样式并.再次使用运算符时,它不建议display。我的问题是: 如何让 Intellisense 显示这些属性?

注意:我是 HTML、CSS 和 Javascript 的新手,所以我不知道我是否使用了所有正确的术语,但我试过了!

标签: javascripthtmlcssvisual-studio-codeintellisense

解决方案


VS Code 的 JavaScript IntelliSense 不知道你的 HTML 是什么样子,所以它会假设querySelector返回一个非常通用的对象类型。这就是为什么您看不到有关.style其他一些常见 DOM 属性的建议的原因。这些属性在返回时可能真的不存在querySelector

querySelector但是,您可以使用简单的JSDoc 类型注释显式告诉 VS Code 返回的元素的类型:

/** @type {HTMLDivElement} */
const listElement =  document.querySelector('.list');

这应该会给你正确的 IntelliSense:

声明类型后 HTML div 元素上的 IntelliSense 示例。


推荐阅读