–init în TypeScript

Creează un fișier tsconfig.json nou, cu setările recomandate de versiunea curentă de TypeScript.

Sintaxă
tsc --init
tsc --init --target es2022 --strict

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.