Ce face noUnusedParameters
Cu noUnusedParameters, un parametru declarat și nefolosit în corpul funcției dă eroarea TS6133. De multe ori înseamnă o greșeală: ai uitat să folosești o valoare primită.
Uneori parametrul trebuie să existe doar ca să ajungi la următorul, de exemplu în map((x, i) => i). Pentru asta, pune _ la începutul numelui (_x): parametrii care încep cu _ nu sunt raportați.
Implicit este false și nu face parte din strict.
Parametri
| Parametru | Descriere |
|---|---|
true |
Parametrii nefolosiți dau eroare (cu excepția celor care încep cu _). |
false |
Valoarea implicită. Nu se verifică. |
Exemple
Exemplul 1: Parametri nefolosiți
oras nu este folosit în salut, iar x nu este folosit în primul map. În al doilea map, _x nu dă eroare.
// tsconfig.json
{
"compilerOptions": {
"noUnusedParameters": true
}
}
// index.ts
function salut(nume: string, oras: string) {
return "Salut, " + nume;
}
const lista = ["Ana", "Ion"].map((x, i) => i);
const lista2 = ["Ana", "Ion"].map((_x, i) => i);
console.log(salut("Ana", "Iași"), lista, lista2);
Rezultat (tsc 5.9)
$ npx tsc --noEmit
index.ts(1,30): error TS6133: 'oras' is declared but its value is never read.
index.ts(4,35): error TS6133: 'x' is declared but its value is never read.
Exemplul 2: Parametri folosiți sau marcați cu _
salut folosește ambii parametri, iar la map doar poziția contează, deci primul parametru este _nume.
function salut(nume: string, oras: string): string {
return `Salut, ${nume} din ${oras}!`;
}
const pozitii = ["Ana", "Ion", "Maria"].map((_nume, i) => i + 1);
console.log(salut("Ana", "Iași"));
console.log(pozitii);
Rezultat
Salut, Ana din Iași!
[ 1, 2, 3 ]
Greșeli frecvente
- Să ștergi un parametru nefolosit din mijlocul listei. Parametrii de după își schimbă poziția și apelurile se strică; redenumește-l cu
_.
Comenzi înrudite
noUnusedLocals: Dă eroare pentru variabilele locale, importurile și funcțiile declarate, dar niciodată citite.strict: Pornește dintr-o singură mișcare toate verificările stricte de tipuri (strictNullChecks, noImplicitAny și celelalte).