2017-02-27 7 views
3

My PhpStorm/WebStorm IDEは、classconstructorが一部のクラスで使用されていないことを伝えています(すべてではありません)。私は既にJavaScript言語バージョンをECMAScript6に設定し、設定でNode.jsサポートを有効にしました。コードは一般的にうまくいきます。たとえば...JetBrains IDEがクラスとコンストラクタが使用されていないと言っているのはなぜですか?

ファイル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とマークされます。私もこれを防ぐ方法を見つけられていません...

+0

私が思うに、あなたはファイルに「未使用のクラスとメソッド」検査を抑制することができます - 設定 - コードインスペクション - JS。私は6ヶ月前にPhpStormで働いていたので、その道はわかりませんが、そのようなものでした。 –

+0

@ JirkaPicekしかし、これはプロジェクト全体の検査を無効にします。それはうまくいくかもしれませんが、より大きな影響を与えます。私は検査を受けたいが、正しい作業をしたい。 ;) – eisbehr

+0

@Gimbyこれは有効にする必要があります。しかし、それは私のプロジェクトですでに有効になっています。私はこれに質問を広げた。 – eisbehr

答えて

6

私はここで自分で答えを見つけるために尋ねる必要があったようです。 ;)

この問題は、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 
+1

解決策よりもパッチが多いですが、うまくいくと思います。ありがとう。 – Dakusan

関連する問題