首先你必须明白我正在从IntelliJ切换到VSCode(也许我觉得IntelliJ正在寻找模块的方式太舒服了)。
我将主要使用VSCode开发Angular CLI生成的Angular应用程序。
从新生成的CLI应用程序开始,在新的VSCode安装中打开项目(删除设置和所有扩展)我意识到我需要在VSCode IntelliSense意识到之前手动导入任何Angular模块。
示例:假设我需要创建2个Angular服务。两者都需要HttpClient来获取数据。在第一个,我更改构造函数属性以注入它。当按下快速修复快捷方式(CTRL +。)时,我只得到一个建议,即从selenium-webdriver导入HttpClient。
仍在第一次服务中,我手动添加了Angular HttpClient导入:
import { HttpClient } from '@angular/common/http';
转到第二个服务,更改构造函数以相同的方式添加httpClient属性,现在我在按下快速修复快捷方式时获得更多结果:
这是预期的行为还是我弄错了?已经在3个不同的系统上尝试了这个并且结果相同。我期待IntelliSense有点删除HttpClient上下文的智能。
这对于任何模块都是相同的,这意味着您需要在VSCode意识到之前手动导入一次。
是的,你是对的,我在为工作室建造演示期间多次遇到过这种情况。问题出在Visual Studio Code的Autoimport
插件导入HttpClient
类中
'../../node_modules/@types/selenium-webdriver/http'
代替
'../../node_modules/@angular/common/http'