Programmieren in TypeScript

Book description

Programmierer, die mit einer dynamisch typisierten Sprache arbeiten, wissen, wie schwer es ist, ein Projekt zu skalieren: was den Umfang der Codebasis angeht, vor allem aber die Zahl der beteiligten Programmierer. Mit TypeScript hat Microsoft 2012 eine Sprache veröffentlicht, die sich durch moderne Sprachkonstrukte, aber insbesondere durch ein mächtiges Typsystem auszeichnet und so die Entwicklung von skalierenden JavaScript-Anwendungen wirksam unterstützt.

Boris Cherny, Engineering- und Produkt-Leader bei Facebook, leitet Entwickler mit Grundkenntnissen in JavaScript an, sich systematisch und gründlich in die beliebte Sprache einzuarbeiten. Im Anschluss an die Grundlagen wie z.B. verschiedene Typen und Typ-Operatoren werden fortgeschrittene Themen wie das ausgeklügelte Typsystem (einschließlich der Anleitung zum sicheren Umgang mit Fehlern und zum Erstellen asynchroner Programme), die Migration von JavaScript-Projekten zu TypeScript sowie TypeScript-Applikationen im Produktionsbetrieb behandelt.

Table of contents

  1. Cover
  2. Titel
  3. Impressum
  4. Widmung
  5. Inhalt
  6. Vorwort
  7. 1 Einführung
  8. 2 TypeScript aus der Vogelperspektive
    1. Der Compiler
    2. Das Typsystem
    3. TypeScript im Vergleich mit JavaScript
    4. Einrichtung des Codeeditors
    5. tsconfig.json
    6. tslint.json
    7. index.ts
    8. Übungen
  9. 3 Alles über Typen
    1. Wo wir gerade von Typen sprechen
    2. Das ABC der Typen
    3. any
    4. unknown (unbekannt)
    5. boolean (boolescher Wert)
    6. number (Zahl)
    7. bigint
    8. string (String, Zeichenkette)
    9. symbol (Symbole)
    10. Objekte
    11. Kurze Unterbrechung: Typaliase, Vereinigungs- und Schnittmengen
    12. Arrays
    13. Tupel
    14. null, undefined, void und never
    15. Enums
    16. Zusammenfassung
    17. Übungen
  10. 4 Funktionen
    1. Funktionen deklarieren und aufrufen
    2. Optionale und Standardparameter
    3. Restparameter
    4. call, apply und bind
    5. this typisieren
    6. Generator-Funktionen
    7. Iteratoren
    8. Aufrufsignaturen (Call Signatures)
    9. Kontextabhängige Typisierung
    10. Überladene Funktionstypen
    11. Polymorphismus
    12. Wann werden Generics gebunden?
    13. Wo können Generics deklariert werden?
    14. Generische Typableitung
    15. Generische Typaliase
    16. Begrenzter Polymorphismus
    17. Generische Standardtypen
    18. Typgetriebene Entwicklung
    19. Zusammenfassung
    20. Übungen
  11. 5 Klassen und Interfaces
    1. Klassen und Vererbung
    2. super
    3. this als Rückgabetyp verwenden
    4. Interfaces
    5. Deklarationen verschmelzen
    6. Implementierungen
    7. Implementierung von Interfaces im Vergleich mit der Erweiterung abstrakter Klassen
    8. Klassen sind strukturell typisiert
    9. Klassen deklarieren Werte und Typen
    10. Polymorphismus
    11. Mixins
    12. Dekoratoren
    13. Finale Klassen simulieren
    14. Entwurfsmuster (Design Patterns)
    15. Factory-Muster
    16. Builder-Muster
    17. Zusammenfassung
    18. Übungen
  12. 6 Fortgeschrittene Typen
    1. Beziehungen zwischen Typen
    2. Subtypen und Supertypen
    3. Varianz
    4. Zuweisbarkeit
    5. Typerweiterung
    6. Typverfeinerung (refinement)
    7. Totalität
    8. Fortgeschrittene Objekttypen
    9. Typoperatoren für Objekttypen
    10. Der Record-Typ
    11. Abgebildete Typen
    12. Das Companion-Objektmuster
    13. Fortgeschrittene Funktionstypen
    14. Typinferenz für Tupel verbessern
    15. Benutzerdefinierte Type Guards (Typschutz)
    16. Konditionale Typen
    17. Distributive Bedingungen
    18. Das Schlüsselwort infer
    19. Eingebaute konditionale Typen
    20. Notausgänge
    21. Typzusicherungen (type assertions)
    22. Nicht-null-Zusicherungen
    23. Zusicherungen für definitive Zuweisungen
    24. Nominale Typen simulieren
    25. Prototypen sicher erweitern
    26. Zusammenfassung
    27. Übungen
  13. 7 Fehlerbehandlung
    1. Die Rückgabe von null
    2. Ausnahmen auslösen
    3. Ausnahmen zurückgeben
    4. Der Option-Typ
    5. Zusammenfassung
    6. Übung
  14. 8 Asynchrone Programmierung, Nebenläufigkeit und Parallelismus
    1. JavaScripts Eventschleife
    2. Mit Callbacks arbeiten
    3. Promises verwenden, damit die eigene Gesundheit nicht leidet
    4. async und await
    5. Asynchrone Streams
    6. Event-Emitter
    7. Typsicheres Multithreading
    8. Im Browser: Mit Web Workers
    9. In NodeJS: Mit Kindprozessen
    10. Zusammenfassung
    11. Übungen
  15. 9 Frontend- und Backend-Frameworks
    1. Frontend-Frameworks
    2. React
    3. Angular 6/7
    4. Typsichere APIs
    5. Backend-Frameworks
    6. Zusammenfassung
  16. 10 Namensräume.Module
    1. Eine kurze Geschichte der JavaScript-Module
    2. import, export
    3. Dynamische Importe
    4. CommonJS und AMD Code verwenden
    5. Modulmodus oder Skriptmodus
    6. Namensräume
    7. Kollisionen
    8. Kompilierte Ausgaben
    9. Deklarationsverschmelzung (declaration merging)
    10. Zusammenfassung
    11. Übung
  17. 11 Zusammenarbeit mit JavaScript
    1. Typdeklarationen
    2. Ambiente Variablendeklarationen
    3. Ambiente Typdeklarationen
    4. Ambiente Moduldeklarationen
    5. Schrittweise Migration von JavaScript zu TypeScript
    6. Schritt 1: TSC hinzufügen
    7. Schritt 2a: Typechecking für JavaScript aktivieren (optional)
    8. Schritt 2b: Add JSDoc Annotations (Optional)
    9. Schritt 3: Versehen Sie Ihre Dateien mit der Endung .ts
    10. Schritt 4: Verwenden Sie den strict-Modus
    11. Typermittlung für JavaScript
    12. JavaScript von Drittanbietern verwenden
    13. JavaScript mit eigenen Typdeklarationen
    14. JavaScript, für das es Typdeklarationen auf DefinitelyTyped gibt
    15. JavaScript, für das es keine Typdeklarationen auf DefinitelyTyped gibt
    16. Zusammenfassung
  18. 12 TypeScript-Projekte erstellen und ausführen
    1. Das TypeScript-Projekt erstellen
    2. Projekt-Layout
    3. Artefakte
    4. Das Kompilierungsziel festlegen
    5. Sourcemaps verwenden
    6. Projektreferenzen
    7. Fehlerberichte
    8. TypeScript auf dem Server ausführen
    9. TypeScript im Browser ausführen
    10. TypeScript-Code über NPM veröffentlichen
    11. Triple-Slash-Direktiven (///)
    12. Die types-Direktive
    13. Die amd-module-Direktive
    14. Zusammenfassung
  19. 13 Abschluss
  20. A Typoperatoren
  21. B Hilfsfunktionen für Typen
  22. C Geltungsbereiche für Deklarationen
  23. D Rezepte für das Schreiben von Deklarationsdateien für JavaScript-Module von Drittanbietern
  24. E Triple-Slash-Direktiven
  25. F TSC-Compiler-Flags für mehr Sicherheit
  26. G TSX
  27. Fußnoten
  28. Index
  29. Über den Autor

Product information

  • Title: Programmieren in TypeScript
  • Author(s): Boris Cherny
  • Release date: November 2019
  • Publisher(s): dpunkt
  • ISBN: 9783960091226