VSCode TypeScript: 'Add all missing imports' 快捷键

51

我正在开发一个 TypeScript 项目(TypeScript3.x)。

最近,当我使用未导入的多个类型时,我注意到当我点击灯泡时出现了添加所有缺失的导入选项,如下所示:

是否有相应的快捷方式? 或者我应该将其请求为功能呢?

提前致谢!

3个回答

84
有没有一个相同的快捷方式? 是的,在v1.46中有(请参见v1.46发布说明:添加丢失的导入源操作):

Add all missing imports source action

VS Code has long supported a quick fix that adds all missing imports in a JavaScript or TypeScript file. This iteration, we introduced a new Add all missing imports source action lets you trigger this from anywhere in a file.

This also allows you to set up a keybinding for Add all missing imports:

{
    "key": "ctrl+shift+i",
    "command": "editor.action.sourceAction",
    "args": {
        "kind": "source.addMissingImports",
        "apply": "first"
    }
}

Or even enable Add all missing imports on save:

"editor.codeActionsOnSave": { "source.addMissingImports": "always" },


4
谢谢。我刚刚为“修复损坏的导入”创建了一个新问题,因为我没有看到任何命令针对此进行解决。希望看到这个功能被实现,作为另一个节省时间的特性 https://github.com/microsoft/vscode/issues/102458。它可能很容易地依托现有的功能实现。 - Simon_Weaver
3
有没有一种方法可以在所有文件中添加所有缺失的导入? - serge
非常酷!现在只要我能在使用一些代码片段后自动触发它就好了。 - dovidweisz
这里是 editor.codeActionsOnSave 的文档,包括 "source.addMissingImports"。但当有多个来源时,可能会导入错误的内容。而且当你有多个条目时,将其放在第一位 - cachius

43

我认为VSCode现在已经内置了这个功能。

快捷键Ctrl + .可以给我们提供自动修复问题的选项。我发现即使有多个导入,这也有效。

如果还有其他方法,请告诉我 :)


1
一个很棒的快捷键。我习惯使用Ctrl + 空格,但这个给出了更好的建议! - Jakub
12
但是这条捷径无法让我们一次性导入所有缺失的文件。 :) - Mayur Agarwal
2
@MayurAgarwal 当存在一个具有相同名称的单个模块时,它会显示添加所有缺失导入选项。例如,有两个未导入的依赖项:1)Logger 2)DateTime(来自luxon)。 我们在package.json中有mongodb,并且由于他们提供了自己的logger模块,如果我们尝试使用自定义logger,则vscode不会显示导入全部。它将显示所有可用的logger模块。同样,当我们按下其他唯一项目的快捷键时,它将显示导入全部,并尝试导入第一个带有logger的模块。希望这很清楚。 - Leela Venkatesh K

-1

假设您指的是键盘快捷方式,我在“文件” -> “首选项” -> “键盘快捷方式”窗口中根本没有看到该命令列表,因此似乎没有快捷方式也没有配置快捷方式的方法(截至Visual Studio Code 1.28.2)。如果TypeScript扩展中的“添加所有缺少的导入”代码修复作为一个命令公开,则可以分配快捷方式。


它将很快作为全局快捷方式提供(2020年6月):https://github.com/microsoft/vscode/issues/95831 - alex3683

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接