// LERNEN · SPRACHEN & FRAMEWORKS
TypeScript
Ein praxisnaher TypeScript-Kurs vom ersten Compilerfehler bis zu Generics, Programmierung auf Typebene, Deklarationsdateien und großen Projekten. Jedes Beispiel wird mit TypeScript 7.0 kompiliert und geprüft.
Niveau: Einstieg bis Vertiefung · Für: Entwicklerinnen und Entwickler mit JavaScript-Grundlagen, die Fehler vom Compiler finden lassen möchten, vom ersten Typ bis zur typisierten Codebasis.
Lehrplan
Einstieg
Vollständig
Nach dieser Stufe können Sie
- TypeScript 7.0 installieren, tsc in einem Projekt mit tsconfig.json ausführen und anhand einer Compilermeldung den Code korrigieren
- Variablen, Funktionen und Objektformen annotieren und erklären, wann Inferenz eine Annotation überflüssig macht
- Alternativen mit Union- und Literaltypen modellieren und sicher eingrenzen, einschließlich Vollständigkeitsprüfungen mit never
- Funktionen mit optionalen, Standard- und Rest-Parametern, Überladungen und Funktionstyp-Ausdrücken typisieren
- Objektdaten mit optionalen und readonly-Eigenschaften, Indexsignaturen, Schnittmengentypen und Tupeln beschreiben
B1Einrichtung und Grundlagen5 von 5 geschrieben · 5 LektionenLäuft auf Ihrem Rechner
TypeScript installieren, eine erste tsconfig.json schreiben und einen ersten Compilerfehler beheben
Sie bauen: Ein bestehendes JavaScript-Skript mit Typprüfung
B2Alltägliche Typen5 von 5 geschrieben · 5 LektionenLäuft im Browser
Alltägliche Werte und Objekte annotieren und erkennen, wann Inferenz genügt
Sie bauen: Ein typisiertes Adressbuch
B3Eingrenzung (Narrowing)5 von 5 geschrieben · 5 LektionenLäuft im Browser
Jedes Mitglied einer Union sicher behandeln, mit diskriminierten Unions und Vollständigkeitsprüfungen
Sie bauen: Ein Zustandsautomat für den Bestellstatus
B4Mehr zu Funktionen5 von 5 geschrieben · 5 LektionenLäuft im Browser
Jede Funktionssignatur typisieren, einschließlich Überladungen und this
Sie bauen: Eine typisierte Hilfsbibliothek
B5Objekttypen5 von 5 geschrieben · 5 LektionenLäuft im Browser
Echte Datenformen mit readonly-Eigenschaften, Indexsignaturen, Schnittmengentypen und Tupeln beschreiben
Sie bauen: Ein typisierter Inventar-Lader
Projekt der Stufe Einstieg
Typisierter Ausgabenteiler
Ein striktes TypeScript-Programm, das Ausgaben auf Personen aufteilt, Zahlungszustände als diskriminierte Union modelliert und nicht kompiliert, wenn ein Zustand nicht behandelt wird.
Läuft im BrowserSelbst geprüft anhand einer Checkliste
Zur ProjektanleitungAufbau
Demnächst verfügbar
Nach dieser Stufe können Sie
- Generische Funktionen, Interfaces und Klassen mit Einschränkungen und Standardtypen schreiben
- Typen mit keyof, typeof, indizierten Zugriffstypen, bedingten, abgebildeten und Template-Literal-Typen aus anderen Typen ableiten
- Klassen mit Sichtbarkeitsmodifikatoren, implements, abstrakten Mitgliedern und generischem this typisieren
- Ein Projekt aus mehreren Dateien mit module, moduleResolution und verbatimModuleSyntax konfigurieren und das Zusammenspiel von ESM und CommonJS erklären
- Die eingebauten Hilfstypen anwenden und strukturelle Typkompatibilität erklären
I1GenericsDemnächst verfügbar · 5 LektionenLäuft im Browser
Wiederverwendbaren, typsicheren Code mit generischen Funktionen, Interfaces und Klassen schreiben
Sie bauen: Ein typisierter Cache
- I1.1Demnächst verfügbar
- I1.2Demnächst verfügbar
- I1.3Demnächst verfügbar
- I1.4Demnächst verfügbar
- I1.5Demnächst verfügbar
I2Typen aus TypenDemnächst verfügbar · 6 LektionenLäuft im Browser
Typen ableiten statt sie zu wiederholen, mit keyof, bedingten, abgebildeten und Template-Literal-Typen
Sie bauen: Ein typisierter Event-Emitter
- I2.1Demnächst verfügbar
- I2.2Demnächst verfügbar
- I2.3Demnächst verfügbar
- I2.4Demnächst verfügbar
- I2.5Demnächst verfügbar
- I2.6Demnächst verfügbar
I3KlassenDemnächst verfügbar · 5 LektionenLäuft im Browser
Objektorientierten Code mit Modifikatoren, implements und abstrakten Klassen typisieren
Sie bauen: Eine typisierte Hierarchie geometrischer Formen
- I3.1Demnächst verfügbar
- I3.2Demnächst verfügbar
- I3.3Demnächst verfügbar
- I3.4Demnächst verfügbar
- I3.5Demnächst verfügbar
I4Module und ProjektkonfigurationDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Ein echtes Projekt aus mehreren Dateien konfigurieren und zwischen nodenext und bundler wählen
Sie bauen: Ein Kommandozeilenwerkzeug aus mehreren Dateien, kompiliert mit tsc
- I4.1Demnächst verfügbar
- I4.2Demnächst verfügbar
- I4.3Demnächst verfügbar
- I4.4Demnächst verfügbar
- I4.5Demnächst verfügbar
I5Hilfstypen und KompatibilitätDemnächst verfügbar · 5 LektionenLäuft im Browser
Die eingebauten Hilfstypen nutzen und strukturelle Typisierung erklären
Sie bauen: Ein typisierter API-Client
- I5.1Demnächst verfügbar
- I5.2Demnächst verfügbar
- I5.3Demnächst verfügbar
- I5.4Demnächst verfügbar
- I5.5Demnächst verfügbar
Projekt der Stufe Aufbau
Typisierter Aufgabenmanager für die Kommandozeile
Ein ES-Modul-Projekt aus mehreren Dateien mit generischen Repository-Klassen, einem JSON-Dateispeicher, einem typisierten Befehlsparser, typisierten Fehlern und ohne any.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Vertiefung
Demnächst verfügbar
Nach dieser Stufe können Sie
- Deklarationsdateien schreiben und veröffentlichen und Typen von Drittanbietern erweitern
- Eine bestehende JavaScript-Codebasis mit checkJs und JSDoc typisieren und sie dann Datei für Datei migrieren
- Distributive und rekursive bedingte Typen, satisfies, const-Typparameter und Varianz-Annotationen einsetzen
- Eine große Codebasis mit Projektreferenzen und tsc -b strukturieren und eine 6.x-Konfiguration auf 7.0 umstellen
- Nicht vertrauenswürdige Eingaben an Laufzeitgrenzen prüfen und TypeScript in Node.js per Type Stripping ausführen
A1DeklarationsdateienDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Fremden Code mit .d.ts-Dateien und Modulerweiterung typisieren
Sie bauen: Typen für eine untypisierte Bibliothek
- A1.1Demnächst verfügbar
- A1.2Demnächst verfügbar
- A1.3Demnächst verfügbar
- A1.4Demnächst verfügbar
- A1.5Demnächst verfügbar
A2JavaScript typisieren und migrierenDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Eine bestehende JavaScript-Codebasis typisieren und die Strenge Schritt für Schritt erhöhen
Sie bauen: Die Migration eines kleinen JavaScript-Projekts
- A2.1Demnächst verfügbar
- A2.2Demnächst verfügbar
- A2.3Demnächst verfügbar
- A2.4Demnächst verfügbar
- A2.5Demnächst verfügbar
A3Fortgeschrittene Programmierung auf TypebeneDemnächst verfügbar · 5 LektionenLäuft im Browser
Präzise APIs im Typsystem ausdrücken
Sie bauen: Typisierte Parameter für URL-Routen
- A3.1Demnächst verfügbar
- A3.2Demnächst verfügbar
- A3.3Demnächst verfügbar
- A3.4Demnächst verfügbar
- A3.5Demnächst verfügbar
A4Decorators, Symbole und IterationDemnächst verfügbar · 5 LektionenLäuft im Browser
Decorators, Symbole, Iteratoren, Generatoren und Mixins typisieren
Sie bauen: Decorators für Logging und Zeitmessung
- A4.1Demnächst verfügbar
- A4.2Demnächst verfügbar
- A4.3Demnächst verfügbar
- A4.4Demnächst verfügbar
- A4.5Demnächst verfügbar
A5Große Projekte und 7.0Demnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Große Codebasen mit Projektreferenzen bauen und pflegen und auf 7.0 umstellen
Sie bauen: Ein Arbeitsbereich aus drei Paketen
- A5.1Demnächst verfügbar
- A5.2Demnächst verfügbar
- A5.3Demnächst verfügbar
- A5.4Demnächst verfügbar
- A5.5Demnächst verfügbar
A6Laufzeitgrenzen und VeröffentlichenDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Typen an den Rändern ehrlich halten und ein typisiertes Paket veröffentlichen
Sie bauen: Ein geprüfter Konfigurationslader
- A6.1Demnächst verfügbar
- A6.2Demnächst verfügbar
- A6.3Demnächst verfügbar
- A6.4Demnächst verfügbar
- A6.5Demnächst verfügbar
Projekt der Stufe Vertiefung
Typisierte HTTP-Client-Bibliothek
Ein kleines Paket mit typisierter Routentabelle, Laufzeitprüfung der Antworten, erzeugten Deklarationsdateien und Projektreferenzen.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Abschlussprojekt
Abschlussprojekt
Eine JavaScript-App auf striktes TypeScript migrieren
Eine vorgegebene JavaScript-App in Etappen migrieren, von JSDoc und checkJs bis zu striktem TypeScript 7.0, mit grünen Tests und einem Migrationsprotokoll.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Quellen
- Announcing TypeScript 7.0 (TypeScript-Blog; englisch)
- The Basics (The TypeScript Handbook; englisch)
- What is a tsconfig.json (TypeScript-Dokumentation; englisch)
- TypeScript 6.0 release notes (TypeScript-Dokumentation; englisch)
- Modules: TypeScript (Node.js-v24-Dokumentation; englisch)
- How to set up TypeScript (TypeScript-Downloadseite; englisch)
- npm install (npm Docs; englisch)
- TSConfig Reference (TypeScript-Dokumentation; englisch)
- TSConfig-Option pretty (TypeScript-Dokumentation; englisch)
- Migrating from JavaScript (TypeScript-Dokumentation; englisch)
- TSConfig option: noImplicitAny (TypeScript documentation; englisch)
- Everyday Types (The TypeScript Handbook; englisch)
- More on Functions: unknown (The TypeScript Handbook; englisch)
- TypeScript 3.0 release notes: the unknown type (TypeScript documentation; englisch)
- Type Inference (TypeScript documentation; englisch)
- Object Types (The TypeScript Handbook; englisch)
- TypeScript 3.4 release notes: const assertions (TypeScript documentation; englisch)
- Narrowing: typeof type guards, Using type predicates (The TypeScript Handbook; englisch)
- TypeScript 3.7 release notes: never-returning functions (TypeScript documentation; englisch)
- TypeScript 4.9 release notes: checks on the in operator (TypeScript documentation; englisch)
- TSConfig reference: useUnknownInCatchVariables (TypeScript documentation; englisch)
- TypeScript 5.5 release notes: inferred type predicates (TypeScript documentation; englisch)
- TypeScript 3.2 release notes: non-unit types as union discriminants (TypeScript documentation; englisch)
- TypeScript 4.4 release notes: aliased conditions and discriminants (TypeScript documentation; englisch)
- TypeScript 4.6 release notes: destructured discriminated unions (TypeScript documentation; englisch)
- TypeScript 3.9 release notes: // @ts-expect-error comments (TypeScript documentation; englisch)
- Type Compatibility: Comparing two functions (TypeScript documentation; englisch)
- Assert: assert.throws (Node.js v24 documentation; englisch)
- Test runner (Node.js v24 documentation; englisch)
- TSConfig reference: exactOptionalPropertyTypes (TypeScript documentation; englisch)
- TSConfig reference: noUncheckedIndexedAccess (TypeScript documentation; englisch)
- Utility Types: Record<Keys, Type> (The TypeScript Handbook; englisch)