【问题标题】:Why is the JetBrains IDE keeps saying Class and Constructor are unused?为什么 JetBrains IDE 一直说 Class 和 Constructor 未使用?
【发布时间】:2017-07-18 03:52:39
【问题描述】:

我的 PhpStorm / WebStorm IDE 一直在说,classconstructor 未用于某些类(并非全部)。我已经将 JavaScript 语言版本设置为 ECMAScript6 并在设置中启用了 Node.js 支持。代码通常也可以正常工作。比如……

文件 TestClass.js:

module.exports = class Test {
    constructor() {
        console.log("Test.constructor");
    }

    test() {
        console.log("Test.test");
    }
}

文件 Test.js:

let Test = require("./TestClass");
let inst = new Test();
inst.test();

有了这个,代码检查不断告诉我:

未使用的类 TestClass
未使用的方法构造函数

有什么问题还是有办法抑制警告? IDE 通常不会显示禁止此选项的选项。

另一个问题似乎是,匿名分类也会导致检查问题。如果我将module.exports = class Test { 重写为module.exports = class {,即使类中的test() 方法也会被标记为unused。我也没有找到防止这种情况的方法......

【问题讨论】:

  • 我认为,您可以在文件 - 首选项 - 代码检查 - JS 中抑制“未使用的类和方法”检查。我不确定路径,因为我在 6 个月前与 PhpStorm 合作过,但就是这样。
  • @JirkaPicek 但这将禁用整个项目的检查。这会奏效,但会产生更大的影响。我想进行检查,但要正确工作。 ;)
  • @Gimby 当然,必须启用。但这已经在我的项目中启用。我已将问题扩展到此。
  • 我知道您已经找到了解决方案,但如果您希望将来仅禁用某些特定检查,请在 Alt+Enter 菜单检查中的 ReSharper... -> 禁用一次并添加评论-> 禁用 。我猜 PhpStorm 中也有类似的东西。
  • @JirkaPicek 是的,那是我一开始正在寻找的东西。但似乎没有选择禁止此类警告。知道 Alt+Enter 功能,但这一行没有任何反应。警告的上下文菜单中甚至没有禁止条目。

标签: node.js phpstorm webstorm jetbrains-ide es6-class


【解决方案1】:

看来我只需要在这里问一下,自己找到答案。 ;)

问题似乎属于class 的内联导出。先创建class,然后再创建export,然后由class name 解决问题。

所以我只需要像这样重写我的类文件:

class Test { // instead of module.exports = class Test {
    constructor() {
        console.log("Test.constructor");
    }
}

module.exports = Test; // put the export to an extra line

【讨论】:

  • 更多的是一个补丁而不是一个解决方案,但我想它可以工作。谢谢。
  • 谢谢!到目前为止,这是所有网络中唯一的帮助。直接导出类不再有“未使用的方法”问题。但是需要模块并调用构造函数不会提示参数。它只会识别带有MyClass.prototype.constructor() 的构造函数。在文件末尾导出类导致构造函数被正确识别。
猜你喜欢
  • 2021-09-17
  • 2012-09-30
  • 1970-01-01
  • 2014-09-19
  • 2016-07-31
  • 2011-07-16
  • 1970-01-01
  • 2017-04-19
  • 1970-01-01
相关资源
最近更新 更多