为啥 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。为啥?
为啥启用 Just My Code 后 VS2010 会寻找框架源代码?