为啥 VS Code javascript intellisense 依赖于我打开的文件?

Posted

技术标签:

【中文标题】为啥 VS Code javascript intellisense 依赖于我打开的文件?【英文标题】:Why is VS Code javascript intellisense dependent on the files I have open?为什么 VS Code javascript intellisense 依赖于我打开的文件? 【发布时间】:2017-12-09 14:34:22 【问题描述】:

我有一个项目使用 .js 和 .es6 文件(Rails,虽然我认为这并不重要),我正在尝试使用 VS Code 的 javascript intellisense per these instructions。我有一个jsconfig.json 文件:


    "include": [
        "app/assets/javascripts/**/*",
        "vendor/assets/javascripts/**/*"
    ],
    "compilerOptions": 
        "target": "ES6",
        "checkJs": true
    

在根目录中,所有的 javascript 都在 include 部分中提到的文件夹中。我还在根目录下创建了一个globals.d.ts 文件。

如果我在 VS Code 中打开 globals.d.ts 然后运行 ​​Typescript: Restart TS server,VS Code 会识别 javascript 文件中的这些全局变量。但是,如果我随后关闭 globals.d.ts 并再次运行 Typescript: Restart TS server,VS Code 将无法识别全局变量。这也发生在其他 javascript 文件中创建的全局变量中。例如,假设Class.es6 定义了一个类。如果我在 VS Code 中打开了 Class.es6,我只会获得该类的智能感知。

首先我不确定为什么我的设置不起作用,其次为什么它取决于我当时在 VS Code 中打开了哪些文件。

【问题讨论】:

【参考方案1】:

由于您明确指定了include,因此只有那些包含的文件才会成为您的 javascript 项目的一部分。如果您想取走它,您还需要将global.d.ts 放入您的include

【讨论】:

哇,绝对应该意识到这一点!谢谢你的提示。我将它添加到include 列表中,但没有任何改变。这也不能解释其他 javascript 文件中全局变量的行为。

以上是关于为啥 VS Code javascript intellisense 依赖于我打开的文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VS Code 中使用 Typescript 定义为我自己的 Javascript 服务获取 Intellisense?

VS Code IntelliSense 不适用于 Unity。为啥?

新手求教VS CODE为啥C/C++无代码补全

为啥启用 Just My Code 后 VS2010 会寻找框架源代码?

为啥在超级终端中工作的永久别名在 vs-code bash 终端中不起作用?

为啥 VS Code 认为导入有效但 WebPack 不认为有效?