2017-02-27 4 views
3

Mein PHPStorm/WebStorm IDE merkt an, dass die class und constructor für einige Klassen (nicht für alle) nicht verwendet werden. Ich habe die JavaScript-Sprachversion bereits auf ECMAScript6 eingestellt und die Node.js-Unterstützung in den Einstellungen aktiviert. Der Code funktioniert im Allgemeinen auch gut. Zum Beispiel ...Warum sagt die JetBrains-IDE ständig, dass Class und Constructor nicht verwendet werden?

Datei TestClass.js:

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

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

Datei test.js:

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

Mit diesem Code-Inspektionen hält mir zu sagen:

Nicht verwendete Klasse TestClass
Unbenutzter Methodenkonstruktor

Gibt es etwas Falsches oder gibt es eine Möglichkeit, die Warnung zu unterdrücken? Die IDE zeigt im Allgemeinen keine Option an, um dies zu unterdrücken.

Noch ein weiteres Problem scheint zu sein, dass anonyme Klassen auch zu Inspektionsproblemen führen. Wenn ich module.exports = class Test { zu module.exports = class { umschreibe, wird sogar die Methode test() innerhalb der Klasse als unused markiert. Ich habe auch keinen Weg gefunden, dies zu verhindern ...

+0

Ich denke, können Sie „nicht verwendete Klasse und Methoden“ Inspektion in Datei unterdrücken - Vorgaben - Code-Inspektion - JS. Ich bin mir nicht sicher mit dem Weg, weil ich vor 6 Monaten mit PhpStorm gearbeitet habe, aber es war so etwas. –

+0

@JirkaPicek Aber dies wird die Inspektion für das gesamte Projekt deaktivieren. Das würde funktionieren, hat aber größere Auswirkungen. Ich hätte gerne die Inspektion, aber um richtig zu arbeiten. ;) – eisbehr

+0

@Gimby Sicher, das muss aktiviert sein. Aber das ist bereits in meinem Projekt möglich. Ich habe die Frage dazu erweitert. – eisbehr

Antwort

6

Es scheint, dass ich nur hier fragen musste, um die Antwort selbst zu finden. ;)

Das Problem scheint zum Inline-Export der class zu gehören. Beim Erstellen der class zuerst, und dann export es anschließend durch die class name löst das Problem.

Ich hatte also einfach so meine Klassendateien neu zu schreiben:

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

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

Mehr ein Patch als eine Lösung, aber ich denke, es funktioniert. Vielen Dank. – Dakusan

Verwandte Themen