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…“
 
imported>Import
Version 220
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
* Funktionen und Parameter
* Kontrollstrukturen (if, else, switch, for, while)
* Arrays und Tupel
* Objekte und Interfaces
* Enums


== Typisierung und erweiterte Typen ==
* '''JavaScript-Grundlagen auffrischen:''' Variablen, Funktionen, ES6+ Features (Arrow Functions, Destructuring, Promises).
* Typinferenz
* '''Was ist TypeScript?:''' Unterschiede zu JavaScript, Vorteile (Typensicherheit, IDE-Support), Installation (Node.js & npm).
* Union und Intersection Types
* '''Einfache Typen:''' String, Number, Boolean, Arrays, Tuples, Enums, Any, Unknown, Void, Null und Undefined.
* Literal Types
* Type Aliases
* Generics
* Type Guards
* Mapped Types


== Objektorientierte Programmierung ==
=== Phase 2: Fortgeschrittene Typisierung ===
* Klassen und Konstruktoren
* Vererbung
* Zugriffmodifizierer (public, private, protected)
* Abstrakte Klassen und Interfaces
* Polymorphismus


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


== Fehlerbehandlung und Debugging ==
=== Phase 3: Experten-Konzepte (Advanced Types) ===
* Exception Handling
* Debugging mit VS Code
* Linting und Formatierung


== Fortgeschrittene Themen ==
* '''Generics:''' Wiederverwendbare, typensichere Komponenten, Generic Constraints.
* Dekoratoren
* '''Utility Types:''' Partial, Required, Readonly, Pick, Omit, Record.
* Mixins
* '''Type Guards und Narrowing:''' `typeof`, `instanceof`, Custom Type Guards.
* Asynchrone Programmierung (Promises, async/await)
* '''Mapped und Conditional Types:''' Fortgeschrittene Typ-Transformationen.
* TypeScript mit Node.js
* TypeScript im Frontend (z.B. mit React, Angular)
* Tooling und Build-Prozesse


== Best Practices ==
=== Phase 4: Ökosystem & Best Practices ===
* Typensicherheit
* Code-Strukturierung
* Dokumentation und Kommentare
* Testen mit TypeScript


== Abschluss ==
* '''TypeScript Konfiguration:''' Die `tsconfig.json` verstehen (strict mode, target, module).
Mit diesem Lernpfad kannst du systematisch alle relevanten Themen von TypeScript auf einem Ubuntu-Rechner erarbeiten und dich vom Anfänger zum Profi entwickeln.
* '''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&lt;T, K&gt;`, `Omit&lt;T, K&gt;`, `Record&lt;K, T&gt;`.
* '''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 &amp; 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).''

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).