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:
{
"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:
target: Gibt die in der Ausgabe generierte JavaScript-Version an (z. B.es5,es6/es2015,es2020,esnext).module: Gibt das in der Ausgabe zu verwendende Modulsystem an (z. B.commonjs,esnext,node16).strict: Aktiviert eine breite Palette strenger Typprüfungen. Es wird dringend empfohlen, diese Option auftruezu setzen, um die Codesicherheit zu maximieren. Sie aktiviert Optionen wie:noImplicitAny: Erzeugt einen Fehler, wenn die Typannotation für Parameter fehlt, die andernfalls alsanyabgeleitet würden.strictNullChecks: Verhindert die Zuweisung vonnullorundefinedan Typen, die diese in ihrer Union nicht explizit vorsehen.
Probier es aus
Aufgabe 1: Handhabung von strictNullChecks
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.
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
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.
Hinweis anzeigen
Deklariere die Funktion mit der Signatur function processItems(items: number[], callback: (item: number) => void): void.
Lösung nach 3 Versuchen verfügbar