TypeScript: Unterschied zwischen den Versionen

Aus Dokument
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „ == Einleitung == TypeScript ist eine von Microsoft entwickelte Programmiersprache, die auf JavaScript basiert und statische Typisierung sowie moderne Features bietet. Der folgende Lernpfad führt dich Schritt für Schritt von den Grundlagen bis zu fortgeschrittenen Konzepten. == Grundlagen == * Was ist TypeScript? * Installation und Einrichtung auf Ubuntu * Erstes TypeScript-Programm schreiben und kompilieren * Unterschiede zu JavaScript * TypeScript-Ko…“
 
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 2: Zeile 2:
----
----


Dieser Leitfaden bietet einen strukturierten Weg, um TypeScript von Grund auf zu erlernen und in realen Projekten anzuwenden.


== Einleitung ==
== Lernpfad ==
TypeScript ist eine von Microsoft entwickelte Programmiersprache, die auf JavaScript basiert und statische Typisierung sowie moderne Features bietet. Der folgende Lernpfad führt dich Schritt für Schritt von den Grundlagen bis zu fortgeschrittenen Konzepten.


== Grundlagen ==
Der Lernpfad gliedert sich in vier wesentliche Phasen.
* Was ist TypeScript?
* Installation und Einrichtung auf Ubuntu
* Erstes TypeScript-Programm schreiben und kompilieren
* Unterschiede zu JavaScript
* TypeScript-Konfiguration (tsconfig.json)


== Syntax und Basis-Konzepte ==
=== Phase 1: Grundlagen (Prerequisites & Basics) ===
* Variablen und Datentypen
* '''JavaScript-Grundlagen auffrischen:''' Variablen, Funktionen, ES6+ Features (Arrow Functions, Destructuring, Promises).
* Funktionen und Parameter
* '''Was ist TypeScript?:''' Unterschiede zu JavaScript, Vorteile (Typensicherheit, IDE-Support), Installation (Node.js & npm).
* Kontrollstrukturen (if, else, switch, for, while)
* '''Einfache Typen:''' String, Number, Boolean, Arrays, Tuples, Enums, Any, Unknown, Void, Null und Undefined.
* Arrays und Tupel
* Objekte und Interfaces
* Enums


== Typisierung und erweiterte Typen ==
=== Phase 2: Fortgeschrittene Typisierung ===
* Typinferenz
* '''Interfaces und Typ-Aliase:''' Definition von Objekt-Strukturen, Unterschiede zwischen `interface` und `type`.
* Union und Intersection Types
* '''Funktionen:''' Typisierung von Parametern und Rückgabewerten, Optionale Parameter, Overloading.
* Literal Types
* '''Klassen und OOP:''' Access Modifiers (`public`, `private`, `protected`), Readonly, Getter/Setter, abstrakte Klassen, Implementierung von Interfaces.
* Type Aliases
* '''Union und Intersection Types:''' Kombination von Typen (`|` und `&`).
* Generics
* Type Guards
* Mapped Types


== Objektorientierte Programmierung ==
=== Phase 3: Experten-Konzepte (Advanced Types) ===
* Klassen und Konstruktoren
* '''Generics:''' Wiederverwendbare, typensichere Komponenten, Generic Constraints.
* Vererbung
* '''Utility Types:''' Partial, Required, Readonly, Pick, Omit, Record.
* Zugriffmodifizierer (public, private, protected)
* '''Type Guards und Narrowing:''' `typeof`, `instanceof`, Custom Type Guards.
* Abstrakte Klassen und Interfaces
* '''Mapped und Conditional Types:''' Fortgeschrittene Typ-Transformationen.
* Polymorphismus


== Module und Namespaces ==
=== Phase 4: Ökosystem & Best Practices ===
* Import und Export
* '''TypeScript Konfiguration:''' Die `tsconfig.json` verstehen (strict mode, target, module).
* Namespaces vs. Module
* '''Module und Namespaces:''' Import/Export, Code-Organisation.
* Organisation von Code
* '''TypeScript mit Frameworks:''' React, Vue, Angular oder Node.js/Express.
* '''Testing:''' Jest mit TypeScript (ts-jest).


== Fehlerbehandlung und Debugging ==
* Exception Handling
* Debugging mit VS Code
* Linting und Formatierung


== Fortgeschrittene Themen ==
== Lernplan (8 Wochen) ==
* Dekoratoren
* Mixins
* Asynchrone Programmierung (Promises, async/await)
* TypeScript mit Node.js
* TypeScript im Frontend (z.B. mit React, Angular)
* Tooling und Build-Prozesse


== Best Practices ==
Ein strukturierter 8-Wochen-Plan bei einem Zeitaufwand von ca. 5-10 Stunden pro Woche.
* Typensicherheit
* Code-Strukturierung
* Dokumentation und Kommentare
* Testen mit TypeScript


== Abschluss ==
=== Woche 1: Setup und Grundlagen ===
Mit diesem Lernpfad kannst du systematisch alle relevanten Themen von TypeScript auf einem Ubuntu-Rechner erarbeiten und dich vom Anfänger zum Profi entwickeln.
* '''Tag 1-2:''' Node.js installieren, TypeScript global installieren (`npm i -g typescript`). Erstes Skript schreiben, kompilieren (`tsc`) und ausführen (`node`).
* '''Tag 3-5:''' Primitive Typen, Arrays und Tuples lernen. Variablen explizit typisieren.
* '''Tag 6-7:''' Die `tsconfig.json` initialisieren und die wichtigsten Compiler-Optionen verstehen.
 
=== Woche 2: Komplexe Typen und Interfaces ===
* '''Tag 1-3:''' Object Types, Typ-Aliase (`type`) und Interfaces definieren.
* '''Tag 4-6:''' Unterschiede zwischen `type` und `interface` herausarbeiten. Union und Intersection Types anwenden.
* '''Tag 7:''' Übung: Eine kleine Datenstruktur (z. B. für eine To-Do-Liste) mit typisierten Objekten entwerfen.
 
=== Woche 3: Funktionen und Klassen ===
* '''Tag 1-3:''' Funktionen typisieren (Parameter, Return Types, rest parameters). Function Overloading verstehen.
* '''Tag 4-6:''' Klassen in TypeScript. Sichtbarkeits-Modifikatoren (`private`, `protected`) einsetzen.
* '''Tag 7:''' Übung: Die To-Do-Liste in objektorientierter Struktur mit Klassen und Interfaces implementieren.
 
=== Woche 4: Generics ===
* '''Tag 1-3:''' Konzept von Generics verstehen. Generische Funktionen und Klassen erstellen.
* '''Tag 4-6:''' Generic Constraints (`extends`) anwenden, um Typ-Einschränkungen zu definieren.
* '''Tag 7:''' Übung: Eine generische Speicher-Klasse (Storage) schreiben, die verschiedene Datentypen aufnehmen kann.
 
=== Woche 5: Fortgeschrittene Typen und Type Guards ===
* '''Tag 1-3:''' Type Narrowing (z. B. if-Statements mit `typeof`) und benutzerdefinierte Type Guards schreiben.
* '''Tag 4-6:''' `any` vs `unknown`, `never`-Typ verstehen. Exhaustive Switches anwenden.
* '''Tag 7:''' Refactoring einer bestehenden puren JavaScript-Logik zu striktem TypeScript.
 
=== Woche 6: Utility Types und Konfiguration ===
* '''Tag 1-3:''' Eingebaute Utility-Typen anwenden: `Partial<T>`, `Pick<T, K>`, `Omit<T, K>`, `Record<K, T>`.
* '''Tag 4-6:''' Tieftauchen in `tsconfig.json` (`strict: true`, `noImplicitAny`). Modul-Auflösung verstehen.
* '''Tag 7:''' Übung: Verwende Utility Types, um aus bestehenden Interfaces neue abgeleitete Datenmodelle zu erstellen.
 
=== Woche 7: TypeScript im Frontend/Backend ===
* '''Frontend-Track:''' React/Vue-Projekt mit TypeScript aufsetzen (z.B. Vite, Create React App). Typisierte Props und State ausprobieren.
* '''Backend-Track:''' Express.js-Server mit TypeScript einrichten. Request- und Response-Objekte typisieren.
* '''Ziel:''' Eine kleine, funktionierende Anwendung oder API erstellen.
 
=== Woche 8: Tooling, Testing & Abschluss ===
* '''Tag 1-3:''' Linting mit ESLint und Prettier für TypeScript einrichten.
* '''Tag 4-6:''' Unit-Tests mit Jest (`ts-jest`) schreiben und Typ-Assertionen in Tests üben.
* '''Tag 7:''' Projekt abschließen, Code reviewen und mögliche Fallstricke bei der Migration von JS zu TS dokumentieren.
 
== Weitere Ressourcen ==
* [https://www.typescriptlang.org/docs/ Offizielle Dokumentation]
* [https://github.com/type-challenges/type-challenges Type Challenges (GitHub)]
* [https://www.typescriptlang.org/play TypeScript Playground]


----
----
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).''
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).''

Aktuelle Version vom 3. März 2026, 19:18 Uhr

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).


Dieser Leitfaden bietet einen strukturierten Weg, um TypeScript von Grund auf zu erlernen und in realen Projekten anzuwenden.

Lernpfad

Der Lernpfad gliedert sich in vier wesentliche Phasen.

Phase 1: Grundlagen (Prerequisites & Basics)

  • JavaScript-Grundlagen auffrischen: Variablen, Funktionen, ES6+ Features (Arrow Functions, Destructuring, Promises).
  • Was ist TypeScript?: Unterschiede zu JavaScript, Vorteile (Typensicherheit, IDE-Support), Installation (Node.js & npm).
  • Einfache Typen: String, Number, Boolean, Arrays, Tuples, Enums, Any, Unknown, Void, Null und Undefined.

Phase 2: Fortgeschrittene Typisierung

  • Interfaces und Typ-Aliase: Definition von Objekt-Strukturen, Unterschiede zwischen `interface` und `type`.
  • Funktionen: Typisierung von Parametern und Rückgabewerten, Optionale Parameter, Overloading.
  • Klassen und OOP: Access Modifiers (`public`, `private`, `protected`), Readonly, Getter/Setter, abstrakte Klassen, Implementierung von Interfaces.
  • Union und Intersection Types: Kombination von Typen (`|` und `&`).

Phase 3: Experten-Konzepte (Advanced Types)

  • Generics: Wiederverwendbare, typensichere Komponenten, Generic Constraints.
  • Utility Types: Partial, Required, Readonly, Pick, Omit, Record.
  • Type Guards und Narrowing: `typeof`, `instanceof`, Custom Type Guards.
  • Mapped und Conditional Types: Fortgeschrittene Typ-Transformationen.

Phase 4: Ökosystem & Best Practices

  • TypeScript Konfiguration: Die `tsconfig.json` verstehen (strict mode, target, module).
  • Module und Namespaces: Import/Export, Code-Organisation.
  • TypeScript mit Frameworks: React, Vue, Angular oder Node.js/Express.
  • Testing: Jest mit TypeScript (ts-jest).


Lernplan (8 Wochen)

Ein strukturierter 8-Wochen-Plan bei einem Zeitaufwand von ca. 5-10 Stunden pro Woche.

Woche 1: Setup und Grundlagen

  • Tag 1-2: Node.js installieren, TypeScript global installieren (`npm i -g typescript`). Erstes Skript schreiben, kompilieren (`tsc`) und ausführen (`node`).
  • Tag 3-5: Primitive Typen, Arrays und Tuples lernen. Variablen explizit typisieren.
  • Tag 6-7: Die `tsconfig.json` initialisieren und die wichtigsten Compiler-Optionen verstehen.

Woche 2: Komplexe Typen und Interfaces

  • Tag 1-3: Object Types, Typ-Aliase (`type`) und Interfaces definieren.
  • Tag 4-6: Unterschiede zwischen `type` und `interface` herausarbeiten. Union und Intersection Types anwenden.
  • Tag 7: Übung: Eine kleine Datenstruktur (z. B. für eine To-Do-Liste) mit typisierten Objekten entwerfen.

Woche 3: Funktionen und Klassen

  • Tag 1-3: Funktionen typisieren (Parameter, Return Types, rest parameters). Function Overloading verstehen.
  • Tag 4-6: Klassen in TypeScript. Sichtbarkeits-Modifikatoren (`private`, `protected`) einsetzen.
  • Tag 7: Übung: Die To-Do-Liste in objektorientierter Struktur mit Klassen und Interfaces implementieren.

Woche 4: Generics

  • Tag 1-3: Konzept von Generics verstehen. Generische Funktionen und Klassen erstellen.
  • Tag 4-6: Generic Constraints (`extends`) anwenden, um Typ-Einschränkungen zu definieren.
  • Tag 7: Übung: Eine generische Speicher-Klasse (Storage) schreiben, die verschiedene Datentypen aufnehmen kann.

Woche 5: Fortgeschrittene Typen und Type Guards

  • Tag 1-3: Type Narrowing (z. B. if-Statements mit `typeof`) und benutzerdefinierte Type Guards schreiben.
  • Tag 4-6: `any` vs `unknown`, `never`-Typ verstehen. Exhaustive Switches anwenden.
  • Tag 7: Refactoring einer bestehenden puren JavaScript-Logik zu striktem TypeScript.

Woche 6: Utility Types und Konfiguration

  • Tag 1-3: Eingebaute Utility-Typen anwenden: `Partial<T>`, `Pick<T, K>`, `Omit<T, K>`, `Record<K, T>`.
  • Tag 4-6: Tieftauchen in `tsconfig.json` (`strict: true`, `noImplicitAny`). Modul-Auflösung verstehen.
  • Tag 7: Übung: Verwende Utility Types, um aus bestehenden Interfaces neue abgeleitete Datenmodelle zu erstellen.

Woche 7: TypeScript im Frontend/Backend

  • Frontend-Track: React/Vue-Projekt mit TypeScript aufsetzen (z.B. Vite, Create React App). Typisierte Props und State ausprobieren.
  • Backend-Track: Express.js-Server mit TypeScript einrichten. Request- und Response-Objekte typisieren.
  • Ziel: Eine kleine, funktionierende Anwendung oder API erstellen.

Woche 8: Tooling, Testing & Abschluss

  • Tag 1-3: Linting mit ESLint und Prettier für TypeScript einrichten.
  • Tag 4-6: Unit-Tests mit Jest (`ts-jest`) schreiben und Typ-Assertionen in Tests üben.
  • Tag 7: Projekt abschließen, Code reviewen und mögliche Fallstricke bei der Migration von JS zu TS dokumentieren.

Weitere Ressourcen


Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).