使用 Typescript 3.9.7 拥有一个干净的 Angular 10 项目,一些自动导入和建议不起作用。例如,我开始输入 FormsM... ,它应该出现 FormsModule 来自动完成并从 @angular/forms 自动导入,但此选项没有出现。但是,确实出现了其他选项,例如:FormStyle(来自@angular/common)。
我已经尝试将 "typeRoots": [ "node_modules" ] 添加到我的 tsconfig.json 但没有成功。这是 typescript 问题还是 vscode 问题?这正在扼杀我的生产力。请帮忙。
我什至安装了一堆扩展,但似乎没有一个适合我。我启用了这些:
首先,您必须了解我正在从 IntelliJ 切换到 VSCode(也许我对 IntelliJ 寻找模块的方式太熟悉了)。
我将主要使用 VSCode 来开发由 Angular CLI 生成的 Angular 应用程序。
从一个新的 CLI 生成的应用程序开始,在新的 VSCode 安装中打开项目(删除了设置和所有扩展)我意识到我需要在 VSCode IntelliSense 意识到它们之前手动导入任何 Angular 模块。
示例:假设我需要创建 2 个 Angular 服务。两者都需要 HttpClient 来获取数据。在第一个中,我更改构造函数属性以注入它。当按下 Quick Fix 快捷方式 (CTRL + .) 时,我只得到一个建议,即从 selenium-webdriver 导入 HttpClient。
还是在第一个服务中,我手动添加了Angular HttpClient import:
import { HttpClient } from '@angular/common/http';
Run Code Online (Sandbox Code Playgroud)
转到第二个服务,更改构造函数以相同的方式添加 httpClient 属性,现在按下 Quick Fix 快捷方式时我得到了更多结果:
这是预期的行为还是我做错了什么?已经在 3 个不同的系统上尝试过这个,结果相同。我期待 IntelliSense 对 HttpClient 上下文有一点删除智能。
这对于任何模块都是一样的,这意味着您需要在 VSCode 意识到它之前手动导入一次。