【问题标题】:How to stop Intellij from suggesting Promise import from jQuery如何阻止 Intellij 建议从 jQuery 导入 Promise
【发布时间】:2017-12-08 16:59:07
【问题描述】:

Intellij 建议我从 jQuery 导入 Promise,即使它 not 未定义并且我的 typescript 配置有 lib: ["es2015"](意味着 typescript 知道 Promise 是在标准库中定义的)。

它有类型完成和一切。不是红色的,小编很清楚Promise是什么,只是不知什么原因想导入jQuery的定义。

按下退出键使其消失,直到我执行任何其他操作。

它表明我是使用Promise 作为值还是类型。

它可以防止我确实想要在文件中导入的内容的导入建议行为。它会减慢我编辑器中的所有内容。

理想情况下,我可以找到一种方法,只为未定义的变量建议导入。这是某个地方的选择吗?我不想完全禁用它。

更新完全关闭检查不会改变行为。 (上面还添加了其他信息)。

【问题讨论】:

  • 您使用的 IDEA 版本是什么?类似问题 (youtrack.jetbrains.com/issue/WEB-25869) 已在 2017.1 中修复...
  • @lena 看起来是同一个问题。我的版本是2017.3。所以可能重新引入?还是其他问题?
  • 可能不同; ctrl+点击Promise - 你采取什么声明?
  • @lena 我有 4 个选项,它们都是 Typescript 的 node_modules/lib/ 目录中的定义文件,大概是因为我在 tsconfig.json 中包含了 lib: ["es2015"]
  • 所以你有 4 个具有不同承诺定义的库。如果其中任何一个将 Promise 定义为需要导入的外部模块,则应提示导入:(您可以通过在 Promise 调用上方添加 // noinspection TypeScriptUnresolvedFunction 来抑制它

标签: typescript intellij-idea interface


【解决方案1】:

在 Webstorm 2021.2(我想象其他 intellij IDE)中,现在有一个上下文操作来解决这个问题:

  1. 右击Promise
  2. 选择Show Context Actions
  3. 选择Enable library 'es2015.promise' in tsconfig.json

请注意,只需按 ALT+Enter 可能只会进行导入,因此您需要右键单击上下文操作菜单。

要手动添加 'es2105.promise 到您的 tsconfig.json 的 lib 部分

{
  "compilerOptions": {
    "lib" : [
      "es2015.promise",
    ],
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-21
    • 2021-06-23
    • 2020-11-17
    • 2014-08-22
    • 2023-02-15
    • 2018-08-20
    • 1970-01-01
    • 2021-01-03
    相关资源
    最近更新 更多