Zum Inhalt springen
aviral gupta

// 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
  1. 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

    1. B1.1Warum statische Typen: Fehler finden, bevor das Programm läuft
    2. B1.2TypeScript 7.0 installieren und tsc ausführen
    3. B1.3Eine erste tsconfig.json (strict als Standard)
    4. B1.4Compilerfehler lesen: von der Meldung zur Korrektur
    5. B1.5Projekt: ein vorhandenes JavaScript-Skript typprüfen
  2. B2Alltägliche Typen5 von 5 geschrieben · 5 LektionenLäuft im Browser
  3. 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

    1. B3.1Union-Typen und Narrowing
    2. B3.2typeof, Truthiness, Gleichheit und in
    3. B3.3instanceof und Type Predicates
    4. B3.4Discriminated Unions
    5. B3.5never und Vollständigkeit; Projekt: ein Zustandsautomat für Bestellungen
  4. B4Mehr zu Funktionen5 von 5 geschrieben · 5 LektionenLäuft im Browser

    Jede Funktionssignatur typisieren, einschließlich Überladungen und this

    Sie bauen: Eine typisierte Hilfsbibliothek

    1. B4.1Funktionstyp-Ausdrücke und Aufrufsignaturen
    2. B4.2Optionale, Default- und Rest-Parameter
    3. B4.3Funktionsüberladungen
    4. B4.4void, unknown, never und this
    5. B4.5Funktionen zusammen; Projekt: eine typisierte Hilfsbibliothek
  5. 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

    1. B5.1Optionale und readonly-Eigenschaften
    2. B5.2Index-Signaturen
    3. B5.3Typen erweitern und Intersections
    4. B5.4Array<T>, ReadonlyArray und Tupel
    5. B5.5Objekttypen im Zusammenspiel; Projekt: ein typisierter Bestandslader

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 Projektanleitung

Aufbau

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
  1. I1GenericsDemnächst verfügbar · 5 LektionenLäuft im Browser

    Wiederverwendbaren, typsicheren Code mit generischen Funktionen, Interfaces und Klassen schreiben

    Sie bauen: Ein typisierter Cache

    1. I1.1Demnächst verfügbar
    2. I1.2Demnächst verfügbar
    3. I1.3Demnächst verfügbar
    4. I1.4Demnächst verfügbar
    5. I1.5Demnächst verfügbar
  2. 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

    1. I2.1Demnächst verfügbar
    2. I2.2Demnächst verfügbar
    3. I2.3Demnächst verfügbar
    4. I2.4Demnächst verfügbar
    5. I2.5Demnächst verfügbar
    6. I2.6Demnächst verfügbar
  3. 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

    1. I3.1Demnächst verfügbar
    2. I3.2Demnächst verfügbar
    3. I3.3Demnächst verfügbar
    4. I3.4Demnächst verfügbar
    5. I3.5Demnächst verfügbar
  4. 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

    1. I4.1Demnächst verfügbar
    2. I4.2Demnächst verfügbar
    3. I4.3Demnächst verfügbar
    4. I4.4Demnächst verfügbar
    5. I4.5Demnächst verfügbar
  5. 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

    1. I5.1Demnächst verfügbar
    2. I5.2Demnächst verfügbar
    3. I5.3Demnächst verfügbar
    4. I5.4Demnächst verfügbar
    5. 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
  1. 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

    1. A1.1Demnächst verfügbar
    2. A1.2Demnächst verfügbar
    3. A1.3Demnächst verfügbar
    4. A1.4Demnächst verfügbar
    5. A1.5Demnächst verfügbar
  2. 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

    1. A2.1Demnächst verfügbar
    2. A2.2Demnächst verfügbar
    3. A2.3Demnächst verfügbar
    4. A2.4Demnächst verfügbar
    5. A2.5Demnächst verfügbar
  3. 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

    1. A3.1Demnächst verfügbar
    2. A3.2Demnächst verfügbar
    3. A3.3Demnächst verfügbar
    4. A3.4Demnächst verfügbar
    5. A3.5Demnächst verfügbar
  4. 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

    1. A4.1Demnächst verfügbar
    2. A4.2Demnächst verfügbar
    3. A4.3Demnächst verfügbar
    4. A4.4Demnächst verfügbar
    5. A4.5Demnächst verfügbar
  5. 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

    1. A5.1Demnächst verfügbar
    2. A5.2Demnächst verfügbar
    3. A5.3Demnächst verfügbar
    4. A5.4Demnächst verfügbar
    5. A5.5Demnächst verfügbar
  6. 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

    1. A6.1Demnächst verfügbar
    2. A6.2Demnächst verfügbar
    3. A6.3Demnächst verfügbar
    4. A6.4Demnächst verfügbar
    5. 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