【发布时间】:2018-10-12 09:01:55
【问题描述】:
Reference to a similar question for VS Code
自从最近的更新之一以来,VS2017 在使用 tab/enter 自动完成 JS 语句时添加了自动导入。这导致了一些令人沮丧的事件,即它在使用 setTimeout 或 document 之类的东西时尝试导入一些遥远的模块。
在 VS Code 中,如引用的问题所示,可以将其关闭。我无法在 VS2017 中找到类似的设置。是否可以禁用或配置此行为?
此外,它还开始插入 sn-ps(例如,使用class)。是否也可以禁用/配置此设置?
我目前使用的是 15.6.7 版本。
【问题讨论】:
-
你找到答案了吗?对类似问题的引用根本没有帮助
-
我认为您对 Salsa 语言服务的自动发现功能不满意。您可以使用 tsconfig.json 文件、enableAutoDiscovery 设置对其进行配置。详情are here.
-
感谢@HansPassant,我能够找到解决方案。显然,如果没有
tsconfig.json文件,自动完成列表将列出setTimeout的两个条目。一个是对原生 JS 实现的引用,另一个是对NodeJS.Timers的引用。当我将tsconfig.json文件放在项目的根目录中时(无论内容如何 - 它甚至可以为空!),Visual Studio 将停止建议NodeJS.Timers变体,并且我可以安全地使用 tab-autocomplete 而不导入不必要的文件.我不确定为什么会发生这种情况,或者它有什么其他后果,但对我来说这是一个解决方案。 -
我之前提到的“解决方法”也需要至少一个
.ts文件,否则MSBuild将失败并出现错误。 -
@IvoCoumans 请相应地发布答案。见Can I answer my own question?。
标签: visual-studio visual-studio-2017