Ce face --init
tsc --init scrie tsconfig.json în directorul curent. Fișierul este JSON cu comentarii (tsconfig acceptă // și virgule la final). În 5.9, conține un set scurt de opțiuni recomandate: module: nodenext, target: esnext, strict, verbatimModuleSyntax, isolatedModules, noUncheckedIndexedAccess, exactOptionalPropertyTypes, skipLibCheck și altele, plus câteva comentate ca sugestii.
Poți da opțiuni în aceeași comandă (tsc --init --target es2022), iar ele vor fi scrise în fișier. Dacă tsconfig.json există deja, tsc refuză să-l suprascrie (eroarea TS5054).
Parametri
| Parametru | Descriere |
|---|---|
--init |
Creează tsconfig.json în directorul curent. |
Exemple
Exemplul 1: Fișierul creat de tsc 5.9
Acesta este conținutul complet al fișierului generat.
npx tsc --init
Rezultat (tsc 5.9)
$ npx tsc --init
Created a new tsconfig.json
You can learn more at https://aka.ms/tsconfig
$ cat tsconfig.json
{
// Visit https://aka.ms/tsconfig to read more about this file
"compilerOptions": {
// File Layout
// "rootDir": "./src",
// "outDir": "./dist",
// Environment Settings
// See also https://aka.ms/tsconfig/module
"module": "nodenext",
"target": "esnext",
"types": [],
// For nodejs:
// "lib": ["esnext"],
// "types": ["node"],
// and npm install -D @types/node
// Other Outputs
"sourceMap": true,
"declaration": true,
"declarationMap": true,
// Stricter Typechecking Options
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
// Style Options
// "noImplicitReturns": true,
// "noImplicitOverride": true,
// "noUnusedLocals": true,
// "noUnusedParameters": true,
// "noFallthroughCasesInSwitch": true,
// "noPropertyAccessFromIndexSignature": true,
// Recommended Options
"strict": true,
"jsx": "react-jsx",
"verbatimModuleSyntax": true,
"isolatedModules": true,
"noUncheckedSideEffectImports": true,
"moduleDetection": "force",
"skipLibCheck": true,
}
}
Greșeli frecvente
- Să păstrezi
"jsx": "react-jsx"și"types": []într-un proiect Node.js fără React. Pentru Node.js, decomentează"types": ["node"]și instalează@types/node. - Să crezi că opțiunile comentate sunt active. Doar cele fără
//în față contează.
Comenzi înrudite
strict: Pornește dintr-o singură mișcare toate verificările stricte de tipuri (strictNullChecks, noImplicitAny și celelalte).module: Alege formatul de module din JavaScript-ul generat (ES modules, CommonJS) și regulile de import pe care le verifică tsc.target: Versiunea de JavaScript generată: sintaxa mai nouă decât ținta este transformată în cod echivalent mai vechi.--showConfig: Afișează configurația finală (cu extends rezolvat și opțiunile deduse) și lista de fișiere, fără să compileze.verbatimModuleSyntax: Importurile rămân exact cum sunt scrise; se șterg doar cele marcate cu type, deci tipurile trebuie importate cu import type.