2017-12-22 2 views
1

Warum meldet Typoskript, dass die Variable nicht verwendet wird, obwohl es innerhalb _close() Methode referenziert wird?Typescript-Server in VSCode meldet nicht verwendete private Variable

Die komische Sache ist, dass, wenn ich das private Schlüsselwort entferne, die Warnung weggeht.

Bitte beachten Sie, dass obwohl es eine Warnung ist, es immer noch nicht kompiliert.

enter image description here

tsconfig.json

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "sourceMap": true, 
    "declaration": false, 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "target": "es5", 
    "noUnusedLocals": true, <-- This line 
    "typeRoots": [ 
     "node_modules/@types" 
    ], 
    "lib": [ 
     "es2017", 
     "dom" 
    ] 
    } 
} 
+2

Die Nachricht sagt nicht, dass die Variable nie ** verwendet wird **. Es sagt der Variablen wird nie ** gelesen **. Was ist der Sinn einer Variablen, wenn man ihren Wert nie liest? –

+0

@JBNizet Ich war zu dumm, um den Unterschied zwischen "nie gelesen" und "nie benutzt" zu unterscheiden – Dummy

Antwort

4

Typoskript beschwert, dass Sie nie lesen die Variable. Ihre _close Methode legt es nur fest. Und ich denke, das Typoskript beklagt sich zu Recht, denn was ist der Sinn, etwas zu speichern, wenn Sie nie daran interessiert sind, seinen Wert später zu nutzen?

Darüber hinaus verschwindet der Fehler, wenn Sie den Modifikator private entfernen, denn dann kann der Wert von jedem gelesen werden, der eine Instanz der Klasse hat. Daher kann Typoskript nicht mehr überprüfen, dass der Wert nie gelesen wird (da er möglicherweise von anderen verwendet wird). Aber mit private weiß es, dass nur die Klassenmethoden auf es zugreifen können. Wenn es den Wert nirgendwo innerhalb der Klasse selbst gelesen bekommt, wird es einen Fehler erzeugen.

Verwandte Themen