Quando si esegue jshint su molti dei miei file JavaScript, ricevo avvertimenti come questo:Impedisci a jshint di segnalare che una variabile non è utilizzata per specifiche variabili locali?
file.js: line X, col 93, 'fromParams' is defined but never used.
file.js: line X, col 72, 'toParams' is defined but never used.
file.js: line X, col 63, 'toState' is defined but never used.
file.js: line X, col 56, 'event' is defined but never used.
Per qualcosa di simile:
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
// ... some code that doesn't use event, toState, toParams, or fromParams...
});
Questo viene molto spesso per i callback di un tipo o di un altro - - la funzione di callback richiede un certo numero di parametri, ma il mio codice nella funzione non utilizza tutti i parametri, quindi jshint si lamenta di loro. Ma i parametri devono essere lì!
C'è doveva essere modi di disattivazione di questo avvertimento in alcune sezioni di codice come questo:
/*jshint -W098 */
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
/*jshint +W098 */
Ma non funziona a causa di un bug in jshint, vedere this open issue.
E 'anche possibile disattivare l'avviso per intere funzioni in questo modo:
/* jshint unused:false */
... ma questo è inaccettabile, perché sarebbe eliminare l'avviso per tutte le le variabili non utilizzate nella funzione, ed io voglio essere avvisato di tutto ciò che è inutilizzato eccetto per i parametri di funzione che so specificamente che non ho intenzione di usare.
Esiste comunque un modo per aggirare questo problema? Mi piacerebbe molto che il mio codice non attivasse avvisi di linter, ma così com'è, jshint segnalerà diversi avvertimenti "definiti ma mai usati" che non so come risolvere.
Aggiungi '/ * jshint inutilizzato: falso * /' nel campo di applicazione della funzione (la prima riga all'interno della funzione) dovrebbe farlo. Non puoi essere specifico per una particolare variabile, non che io sappia. Questo verrà applicato solo nell'ambito della funzione. – Xotic750
Se non hai bisogno di nessuno dei parametri puoi rimuoverli ... non c'è bisogno di essere lì, –
stavo per aggiungere quello. :) Un'altra alternativa (nel peggiore dei casi in cui jshint è più importante, ma non necessariamente, del tuo codice attuale) è creare 'var's all'interno della funzione e assegnarli con' arguments [n] ' – Xotic750