Ce face noEmit
Cu noEmit, tsc devine doar un verificator de tipuri: citește proiectul, raportează erorile și nu scrie nimic pe disc. Este configurația obișnuită când altă unealtă produce JavaScript-ul (Vite, Next.js, esbuild) sau când codul rulează direct ca .ts (Node.js, Deno, Bun).
Comanda tsc --noEmit este des folosită în CI și ca script "typecheck" în package.json. Permite allowImportingTsExtensions. Implicit: false.
Parametri
| Parametru | Descriere |
|---|---|
true |
Nu se scrie niciun fișier. |
false |
Valoarea implicită: se scriu .js (și restul, după opțiuni). |
Exemple
Exemplul 1: Doar verificare
Cu noEmit, după tsc directorul conține doar fișierele de la început. Cu --noEmit false, apare index.js.
// tsconfig.json
{
"compilerOptions": {
"module": "nodenext",
"target": "es2022",
"noEmit": true
}
}
// index.ts
const x: number = 1;
console.log(x);
Rezultat (tsc 5.9)
$ npx tsc && ls
index.ts
package.json
tsconfig.json
$ npx tsc --noEmit false && ls
index.js
index.ts
package.json
tsconfig.json
Greșeli frecvente
- Să adaugi
noEmitși să te miri că directoruldistrămâne vechi. Nu se mai scrie nimic; șterge-l sau scoate opțiunea. - Să combini
noEmitcucompositeîn proiecte referite:tsc -bare nevoie de declarații.
Comenzi înrudite
noEmitOnError: Nu scrie niciun fișier dacă există erori de tip; implicit, tsc scrie JavaScript-ul chiar și cu erori.emitDeclarationOnly: tsc scrie doar fișierele .d.ts, fără .js; JavaScript-ul este produs de altă unealtă (esbuild, Babel, swc).noCheck: Generează fișierele fără verificarea completă a tipurilor; raportează doar erorile de sintaxă și de emitere.allowImportingTsExtensions: Permite importuri cu extensia .ts („./calcul.ts”), când codul este rulat direct de Node.js, Deno, Bun sau de un bundler.