Direkt zum Hauptinhalt springen
eLearner.app
Modul 7 · Lektion 1 von 213/14 im Kurs~12 min
Lektionen des Moduls (1/2)

Konfiguration mit tsconfig.json

Die Datei tsconfig.json definiert das Stammverzeichnis des TypeScript-Projekts und spezifiziert die Compiler-Optionen, die zum Kompilieren des Projekts erforderlich sind.

Wenn Sie tsc im Ordner eines Projekts ausführen, sucht der Compiler nach dieser Datei, um zu wissen, wie er sich verhalten soll.


Struktur der Datei tsconfig.json

Eine typische Konfigurationsdatei sieht so aus:

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

Die wichtigsten Schlüssel sind:

  • compilerOptions: Die Einstellungen für den Compiler.
  • include: Die Dateien oder Ordner, die kompiliert werden sollen.
  • exclude: Die Dateien oder Ordner, die beim Kompilieren ignoriert werden sollen.

Wichtige Compiler-Optionen

Hier sind die wichtigsten Optionen, die Sie kennen sollten:

  1. target: Gibt die in der Ausgabe generierte JavaScript-Version an (z. B. es5, es6/es2015, es2020, esnext).
  2. module: Gibt das in der Ausgabe zu verwendende Modulsystem an (z. B. commonjs, esnext, node16).
  3. strict: Aktiviert eine breite Palette strenger Typprüfungen. Es wird dringend empfohlen, diese Option auf true zu setzen, um die Codesicherheit zu maximieren. Sie aktiviert Optionen wie:
    • noImplicitAny: Erzeugt einen Fehler, wenn die Typannotation für Parameter fehlt, die andernfalls als any abgeleitet würden.
    • strictNullChecks: Verhindert die Zuweisung von null or undefined an Typen, die diese in ihrer Union nicht explizit vorsehen.

Probier es aus

Aufgabe 1: Handhabung von strictNullChecks

Übung#ts.m7.l1.e1
Versuche: 0Wird geladen…

Unter der Option strictNullChecks: true in der Datei tsconfig.json können wir primitiven Typen weder null noch undefined zuweisen. Deklariere eine Funktion namens parseAge, die eine Eingabe vom Typ string | null akzeptiert und eine number zurückgibt, wenn die Eingabe nicht null und eine gültige Ganzzahl ist, andernfalls 0. Behandle den Fall null explizit, um die strikte Kompilierung zu bestehen.

Editor wird geladen…
Hinweis anzeigen

Überprüfe am Anfang der Funktion, ob die Eingabe null ist, und kehre sofort mit 0 zurück, bevor du die Zeichenfolge verarbeitest.

Lösung nach 3 Versuchen verfügbar

Aufgabe 2: Strenge Typisierung ohne Implicit Any

Übung#ts.m7.l1.e2
Versuche: 0Wird geladen…

Unter noImplicitAny: true muss jeder Parameter, dessen Typ nicht abgeleitet werden kann, explizit typisiert werden. Erstelle eine Funktion namens processItems, die ein Array items (Array von Zahlen) und eine Callback-Funktion akzeptiert, die eine einzelne Zahl als Argument nimmt und nichts zurückgibt. Stelle sicher, dass du kein any verwendest und alles explizit typisierst.

Editor wird geladen…
Hinweis anzeigen

Deklariere die Funktion mit der Signatur function processItems(items: number[], callback: (item: number) => void): void.

Lösung nach 3 Versuchen verfügbar