Ce face noEmitOnError
Mulți se miră aflând că, implicit, tsc generează JavaScript chiar dacă găsește erori de tip. Erorile sunt raportate, iar codul de ieșire al lui tsc este diferit de 0, dar fișierele .js sunt scrise. Asta permite rularea codului în timp ce repari tipurile.
Cu noEmitOnError, orice eroare oprește scrierea tuturor fișierelor. Codul cu greșeli nu ajunge niciodată în dist. Implicit: false.
Parametri
| Parametru | Descriere |
|---|---|
true |
La orice eroare nu se scrie nimic. |
false |
Valoarea implicită: fișierele se scriu și cu erori. |
Exemple
Exemplul 1: Cu și fără noEmitOnError
Cu opțiunea pornită, directorul dist nici nu este creat. Cu --noEmitOnError false, aceeași eroare este raportată, dar dist/index.js este scris.
// tsconfig.json
{
"compilerOptions": {
"module": "nodenext",
"target": "es2022",
"noEmitOnError": true,
"outDir": "dist"
}
}
// index.ts
const total: number = "120 lei";
console.log(total);
Rezultat (tsc 5.9)
$ npx tsc; ls dist
index.ts(1,7): error TS2322: Type 'string' is not assignable to type 'number'.
ls: dist: No such file or directory
$ npx tsc --noEmitOnError false; cat dist/index.js
index.ts(1,7): error TS2322: Type 'string' is not assignable to type 'number'.
const total = "120 lei";
console.log(total);
export {};
Greșeli frecvente
- Să te bazezi pe faptul că un build cu erori „nu produce nimic”, fără această opțiune. Verifică și codul de ieșire al lui
tscîn scripturi.
Comenzi înrudite
noEmit: tsc doar verifică tipurile și nu scrie niciun fișier (.js, .d.ts, .map).incremental: Salvează informații despre ultima compilare într-un fișier .tsbuildinfo, ca următoarea compilare să refacă doar ce s-a schimbat.--watch: Pornește tsc în modul „watch”: recompilează automat la fiecare salvare a unui fișier.