vscode Typescript添加所有缺少的导入

klv*_*nky 7 typescript visual-studio-code typescript-typings typescript3.0

我正在一个打字稿项目(typescript3.x)上工作。

我最近注意到,当我使用一种以上尚未导入的类型时,单击灯泡时会添加所有缺少的导入,如下所示:

是否有相同的捷径?还是应该要求它作为功能?

提前致谢

Mar*_*ark 24

有同样的捷径吗?

是的,即将推出 v1.46(请参阅v1.46 发行说明:添加缺少的导入源操作):

添加所有缺少的导入源操作

VS Code 长期以来一直支持在 JavaScript 或 TypeScript 文件中添加所有缺失导入的快速修复。在这次迭代中,我们引入了一个新的Add all missing imports源操作,让您可以从文件中的任何位置触发它。

这还允许您为以下对象设置键绑定Add all missing imports

{
    "key": "ctrl+shift+i",
    "command": "editor.action.sourceAction",
    "args": {
        "kind": "source.addMissingImports",
        "apply": "first"
    }
}
Run Code Online (Sandbox Code Playgroud)

甚至Add all missing imports在保存时启用:

"editor.codeActionsOnSave": [
    "source.addMissingImports"
]
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你。我刚刚创建了一个新问题,其中包含“修复损坏的导入”的功能请求,因为我没有看到任何这些命令解决了这个问题。希望看到此功能作为另一个节省时间的功能实现 https://github.com/microsoft/vscode/issues/102458。它可能可以很容易地利用现有的功能。 (4认同)
  • 有没有办法在所有文件中添加所有缺失的导入? (3认同)

klv*_*nky 19

我认为 vscode 现在内置了这个功能。

快捷方式Ctrl+.为我们提供了自动修复问题的选项。我发现即使在多次导入的情况下也能正常工作。

请让我知道是否还有其他方法可以做到这一点:)

  • 但这个快捷方式不允许我们一次性导入所有丢失的文件。:) (12认同)
  • @MayurAgarwal 它显示了当存在具有该名称的单个模块时添加所有缺少的导入的选项。例如,有 2 个依赖项未导入。1) 记录器 2) 日期时间(来自 luxon)。我们在 package.json 中有 mongodb,因为它们提供了自己的记录器模块,如果我们尝试使用自定义记录器,那么 vscode 将不会显示全部导入。相反,它会向我们显示所有可用的记录器模块。类似地,当我们按下其他项目上的快捷方式(这是唯一的)时,它将显示 import all 并尝试导入附带记录器的第一个模块。希望这一点是清楚的。 (2认同)