Salt la conținutul principal
Modulul 7 · Lecția 1 din 213/14 în curs~12 min
Lecții din modul (1/2)

Configurare cu tsconfig.json

Fișierul tsconfig.json specifică directorul rădăcină al unui proiect TypeScript și opțiunile compilatorului necesare pentru a construi proiectul.

Ori de câte ori rulați tsc într-un director de proiect, compilatorul caută acest fișier pentru a ghida comportamentul său de compilare.


Structura unui fișier tsconfig.json

Un fișier de configurare tipic arată astfel:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

Principalele proprietăți sunt:

  • compilerOptions: Setări pentru compilator.
  • include: Specifică fișierele sau folderele de compilat.
  • exclude: Specifică fișierele sau folderele de ignorat în timpul compilării.

Opțiuni de compilare cheie

Iată câteva dintre cele mai importante setări de știut:

  1. target: Specifică versiunea JavaScript rezultată de către compilator (de exemplu, es5, es6/es2015, es2020, esnext).
  2. module: Specifică sistemul de module utilizat în codul compilat (de exemplu, commonjs, esnext, node16).
  3. strict: permite o suită largă de comportamente riguroase de verificare a tipului. Este foarte recomandat să setați acest lucru la true pentru o siguranță maximă a tipului. Permite opțiuni precum:
    • noImplicitAny: generează o eroare la expresiile și declarațiile cu un tip implicit any atunci când nu este furnizată nicio adnotare de tip.
    • strictNullChecks: Împiedică atribuirea null sau undefined la tipurile care nu le includ în mod explicit în uniunea lor.

Încercați-l singur

Exercițiul 1: Gestionarea strictNullChecks

Exercițiu#ts.m7.l1.e1
Încercări: 0Se încarcă…

În cadrul opțiunii strictNullChecks: true din tsconfig.json, nu putem atribui tipurilor primitive nul sau nedefinit. Declarați o funcție numită parseAge care acceptă o intrare de tip șir | null și returnează un număr dacă intrarea nu este nulă și este un număr întreg valid, în caz contrar, returnează 0. Gestionează explicit cazul null pentru a trece compilarea strictă.

Se încarcă editorul...
Afișează indiciu

Verificați dacă intrarea este nulă la începutul funcției și returnați 0 imediat înainte de procesarea șirului.

Soluție disponibilă după 3 încercări

Exercițiul 2: Tastare strictă fără niciunul implicit

Exercițiu#ts.m7.l1.e2
Încercări: 0Se încarcă…

Sub noImplicitAny: true, orice parametru al cărui tip nu poate fi dedus trebuie să fie introdus în mod explicit. Creați o funcție numită processItems care acceptă elemente de matrice (matrice de numere) și o funcție de apel invers care ia un singur număr ca argument și nu returnează nimic. Asigurați-vă că nu utilizați niciunul și introduceți totul în mod explicit.

Se încarcă editorul...
Afișează indiciu

Declarați funcția cu funcția semnătură processItems(items: number[], callback: (item: number) => void): void.

Soluție disponibilă după 3 încercări