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:
{
"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:
target: Specifică versiunea JavaScript rezultată de către compilator (de exemplu,es5,es6/es2015,es2020,esnext).module: Specifică sistemul de module utilizat în codul compilat (de exemplu,commonjs,esnext,node16).strict: permite o suită largă de comportamente riguroase de verificare a tipului. Este foarte recomandat să setați acest lucru latruepentru o siguranță maximă a tipului. Permite opțiuni precum:noImplicitAny: generează o eroare la expresiile și declarațiile cu un tip implicitanyatunci când nu este furnizată nicio adnotare de tip.strictNullChecks: Împiedică atribuireanullsauundefinedla tipurile care nu le includ în mod explicit în uniunea lor.
Încercați-l singur
Exercițiul 1: Gestionarea strictNullChecks
Î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ă.
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
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.
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