【问题标题】:Visual Studio Code IntelliSense not working for Node.jsVisual Studio Code IntelliSense 不适用于 Node.js
【发布时间】:2018-08-22 05:45:07
【问题描述】:

在发布此问题之前,我已经浏览了以下主题。

Visual Studio Code: Intellisense not working

Visual Studio Code Intellisense not working for Javascript

我的 Windows 10 笔记本电脑上有 Visual Studio 1.26.1 版。

我正在学习 Node.Js,所以我想学习“FS”模块中的各种功能。我在 Visual Studio Code 中创建了一个名为“app1.js”的新文件,并编写了以下代码行。

fsObj = 要求('fs');

之后,当我键入 fsObj. 以查看 fs 对象下可用的函数/属性时,我得到一个列表,其中只有两个对象,它们不是“fs”模块的元素。我不明白为什么 IntelliSense 没有显示“fs”模块的元素。我正在粘贴 VS Code 屏幕的屏幕截图。

【问题讨论】:

  • 假设您安装了节点,这些类型应该会自动下载。你有“typescript.disableAutomaticTypeAcquisition”:false,你的设置没有改变?和“editor.suggestOnTriggerCharacters”:是的,?这些是您不想更改的默认值。
  • 这些设置在哪里?如果这些设置在 VS Code 中,我该如何访问它?
  • 左下角的齿轮图标 - 然后是“设置”。然后您可以“搜索设置”:您应该在左侧面板(只读)中找到这两个设置,如果它们没有更改,则根本不在右侧面板中。我还假设您可以访问 Internet,以便 vscode 可以下载智能感知所需的文件。你安装了节点?抱歉,基本问题以防万一。
  • 我已经检查了这些设置并且它们没有改变。奇怪的是,如果我创建一个新文件夹并在 VS Code 的新窗口中打开该新文件夹,那么我就不会遇到这个问题。但是如果我在一个新的 VS 代码实例中打开同一个文件夹(我在其中看到这个问题),那么我仍然会看到这个问题。这可能与文件夹中的某些内容有关吗?
  • 我不这么认为,把 const 放在变量前面有什么不同吗?看起来对我有用。所以: const fsObj = ...。或 let 或 var。

标签: visual-studio-code


【解决方案1】:

如果变量fsObj 之前没有constletvar,则该变量具有“全局”范围。这似乎阻止了 vscode 能够为该变量分配正确的智能感知参数。添加其中一个,如const,提供了智能感知工作的不同范围。我无法准确解释是什么阻止了智能感知,也许变量绑定到范围链中更高的东西,阻止它工作。

无论如何,如果使用严格模式,不包含const/let/var 将导致错误。

【讨论】:

    猜你喜欢
    • 2016-07-14
    • 1970-01-01
    • 2022-01-21
    • 2016-07-21
    • 2021-05-24
    • 2019-01-25
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多