vs code .value 不被智能感知识别

2024-02-16

我对 javascript 很陌生,但是当我工作时,我试图找出一种方法来获取用户将输入到 html 输入文本框中的文本,但由于某种原因,vs code 无法识别执行此操作所需的智能感知。

我的 HTML 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input type="text" id="first-input">
    <button id="submit-button">Submit</button>
    <script src="main.js" type="text/javascript"></script>
</body>
</html>

JavaScript:

let firstInput = document.getElementById('first-input');
let submitButton = document.getElementById('submit-button');

submitButton.onclick = function () {
    console.log(firstInput.value);
}

为了获取输入文本元素中的数据,其代码是 .value,但是当我开始输入“.val-”时,VS code 的唯一建议是 .nodeValue。

这意味着,为了得到我想要的东西,我使用了 VS Code 的智能感知无法识别的命令。然而,即使智能感知没有找到它,代码仍然按预期运行。

我需要安装或执行某些操作才能访问此信息吗?我担心还有很多其他东西它无法识别,并且会让学习这门语言变得更加困难。提前致谢


这是因为getElementById()不一定返回带有 a 的元素.value财产。例如,它可以返回一个<div>元素。

为了让智能感知知道您将拥有.value属性,你必须用 JSDoc 注释来表明该变量firstInput将是一个<input>元素。像这样:

/**
 * @type HTMLInputElement
 */
let firstInput = document.getElementById('first-input');
/**
 * @type HTMLButtonElement
 */
let submitButton = document.getElementById('submit-button');

submitButton.onclick = function () {
  console.log(firstInput.value);
}

不是为了让您感到困惑,VSCode 使用 TypeScript 来支持其智能感知,即使对于 JavaScript 代码 https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vs code .value 不被智能感知识别 的相关文章

随机推荐