2 Einführung

In der modernen Softwareentwicklung sind dynamische und skriptbasierte Sprachen wie JavaScript unverzichtbar. JavaScript ermöglicht es uns, interaktive Webseiten zu erstellen und ist die Grundlage für viele moderne Web-Technologien. Allerdings hat JavaScript auch seine Grenzen, insbesondere wenn es um größere Projekte und Anwendungen geht. An dieser Stelle kommt TypeScript ins Spiel.

TypeScript, eine von Microsoft entwickelte Obermenge von JavaScript, fügt statische Typen und andere leistungsstarke Funktionen hinzu, die Entwicklern helfen, ihre Anwendungen zu strukturieren und zu verwalten. Durch die Kombination von JavaScripts Flexibilität mit den Vorteilen einer statisch typisierten Sprache hilft TypeScript Entwicklern, effizienter und fehlerfreier zu arbeiten.

In diesem Kurs werden wir uns eingehend mit TypeScript befassen. Wir beginnen mit einem Vergleich von TypeScript und JavaScript und gehen dann auf die Entwicklung von TypeScript und EcmaScript ein. Wir werden die Laufzeitumgebungen (wie Browser und Node.js) und die verschiedenen Entwicklungsumgebungen für TypeScript, wie Visual Studio Code und JetBrains WebStorm, untersuchen.

Wir werden auch die Grundlagen des Transcompilings von TypeScript und den Einsatz von Node Packet Managern wie npm oder yarn erörtern. Weiterhin beleuchten wir Werkzeuge wie Babel.js und behandeln die Konfiguration von TypeScript durch die tsconfig.json.

Ein wichtiges Thema ist die Browserkompatibilität und der Einsatz von Polyfills. Im weiteren Verlauf des Kurses werden wir dann tiefer in die Grundlagen von TypeScript einsteigen und Themen wie Datentypen, Funktionen, Klassen, Interfaces, Generics, Enums, Vererbung und vieles mehr behandeln.

Wir werden uns auch mit objektorientierter Programmierung in TypeScript, Modulen, Type Manipulation und ES6+ Funktionen in TypeScript beschäftigen. Zudem werden wir Tipps und Tricks vorstellen, sowie Do’s und Don’ts für die Arbeit mit TypeScript.

Um die Qualität unseres Codes zu gewährleisten, werden wir den Einsatz von Linters wie ESLint für TypeScript und den Umgang mit CodeStyle und Konventionen erörtern. Wir werden auch fortgeschrittene Themen behandeln, wie zum Beispiel Decorators, Namespaces, Typisierte Arrays, Tuples und die Erstellung von d.ts Templates für eigene Bibliotheken.

Zum Abschluss werden wir den Fokus auf Clean Code, Design Patterns und Testing legen, einschließlich Unit-Tests, Integrationstests und E2E-Tests mit Werkzeugen wie Jest, Mocha und Cypress.

Zusammenfassend lässt sich sagen, dass dieser Kurs ein umfassender Leitfaden für TypeScript ist, der sowohl Grundlagen als auch fortgeschrittene Konzepte abdeckt, um Ihnen das notwendige Wissen und die Fähigkeiten zu vermitteln, um professionelle und skalierbare Anwendungen mit TypeScript zu erstellen.