Direct naar de hoofdinhoud
Module 7 · Les 1 van 213/14 in de cursus~12 min
Modulelessen (1/2)

Configuratie met tsconfig.json

Het bestand tsconfig.json specificeert de hoofdmap van een TypeScript-project en de compileropties die nodig zijn om het project te bouwen.

Telkens wanneer u tsc in een projectmap uitvoert, zoekt de compiler naar dit bestand om het compilatiegedrag te begeleiden.


Structuur van een tsconfig.json bestand

Een typisch configuratiebestand ziet er als volgt uit:

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

De belangrijkste eigenschappen zijn:

  • compilerOptions: Instellingen voor de compiler.
  • include: specificeert de bestanden of mappen die moeten worden gecompileerd.
  • exclude: specificeert de bestanden of mappen die tijdens het compileren moeten worden genegeerd.

Belangrijkste compileropties

Hier zijn enkele van de belangrijkste instellingen die u moet kennen:

  1. target: Specificeert de versie van JavaScript-uitvoer door de compiler (bijvoorbeeld es5, es6/es2015, es2020, esnext).
  2. module: Specificeert het modulesysteem dat in de gecompileerde code wordt gebruikt (bijvoorbeeld commonjs, esnext, node16).
  3. strict: Maakt een breed scala aan rigoureuze typecontroles mogelijk. Het wordt ten zeerste aanbevolen om dit in te stellen op true voor maximale typeveiligheid. Het maakt opties mogelijk zoals:
    • noImplicitAny: geeft een foutmelding bij expressies en declaraties met een impliciet type any wanneer er geen typeannotatie is opgegeven.
    • strictNullChecks: Voorkomt het toewijzen van null of undefined aan typen die deze niet expliciet in hun vereniging opnemen.

Probeer het zelf

Oefening 1: omgaan met strictNullChecks

Oefening#ts.m7.l1.e1
Pogingen: 0Laden…

Onder de optie strictNullChecks: true in tsconfig.json kunnen we geen nul of ongedefinieerd toewijzen aan primitieve typen. Declareer een functie met de naam parseAge die invoer van het type string | accepteert null en retourneert een getal als de invoer niet nul is en een geldig geheel getal is, anders retourneert deze 0. Behandel expliciet het nulgeval om een ​​strikte compilatie door te laten.

Editor laden…
Toon hint

Controleer of de invoer nul is aan het begin van de functie en retourneer 0 onmiddellijk voordat de string wordt verwerkt.

Oplossing beschikbaar na 3 pogingen

Oefening 2: Strikt typen zonder impliciet

Oefening#ts.m7.l1.e2
Pogingen: 0Laden…

Onder noImplicitAny: true moet elke parameter waarvan het type niet kan worden afgeleid, expliciet worden getypt. Maak een functie met de naam processItems die array-items (reeks getallen) accepteert en een callback-functie die één enkel getal als argument neemt en niets retourneert. Zorg ervoor dat u geen enkele gebruikt en typ alles expliciet.

Editor laden…
Toon hint

Declareer de functie met de handtekeningfunctie processItems(items: number[], callback: (item: number) => void): void.

Oplossing beschikbaar na 3 pogingen