Login
 
Main Data
Author: Boris Cherny
Title: Programmieren in TypeScript Skalierbare JavaScript-Applikationen entwickeln
Publisher: O'Reilly Verlag
ISBN/ISSN: 9783960103608
Edition: 1
Price: CHF 26.80
Publication date: 01/01/2019
Content
Category: Informatik, EDV Buch
Language: German
Technical Data
Pages: 328
Kopierschutz: Wasserzeichen
Geräte: PC/MAC/eReader/Tablet
Formate: ePUB
Table of contents
Herausragendes Fachbuch zu TypeScript und seinem Ökosystem - TypeScripts ausgeklügeltes Typsystem verstehen - Tiefgehende Einsichten in die Sprache gewinnen (Minko Gechev, Angular-Team bei Google) - Von den Grundlagen bis zu Applikationen im Produktionsbetrieb Programmierer, die mit dynamisch typisierten Sprachen arbeiten, wissen nur zu genau, wie schlecht ihre Projekte skalieren: wie schwierig es ist, mit einer umfangreichen Codebasis zu arbeiten und viele Entwickler einzubinden. Facebook, Google und Microsoft haben deshalb statisch typisierte Schichten für ihren JavaScript-und Python-Code entwickelt. TypeScript ist hier besonders interessant: Die Sprache bietet ein mächtiges statisches Typsystem, sodass Projekte besser skalieren und das Programmieren wieder Spaß macht. Boris Cherny zeigt Programmierern mit JavaScript-Grundkenntnissen, wie die Konzepte hinter TypeScript gedacht sind und wie man die Sprache sicher beherrscht. Sie erfahren, wie TypeScript Sie dabei unterstützt, Bugs zu vermeiden und Ihren Code für deutlich mehr Entwickler zu skalieren. Was Sie in diesem Buch erwartet: - Mit den Grundlagen beginnen: Sie lernen verschiedene Typen und Typ-Operatoren von TypeScript kennen und erfahren, wofür und wie sie benutzt werden. - Fortgeschrittene Themen erarbeiten: Sie verstehen TypeScripts ausgeklügeltes Typsystem, wie Sie Fehler sicher behandeln und asynchrone Programme entwickeln. - In die Praxis eintauchen: Sie verwenden TypeScript mit den Frontend- und Backend-Frameworks Ihrer Wahl, migrieren JavaScript-Projekte zu TypeScript und führen TypeScript-Anwendungen im Produktivbetrieb aus.

Boris Cherny ist Engineering- und Produkt-Leader bei Facebook. Zuvor arbeitete er im Risikokapital- und Ad Tech-Bereich sowie für verschiedene Start-ups. Er interessiert sich für diverse Programmiersprachen und statische Analyse und setzt sichfür Produkte und Services mit einer Benutzererfahrung ein, die die Anwender einfach lieben.In seiner Freizeit betreibt er das San Francisco TypeScript Meetup und schreibt in seinem persönlichen Blog performancejs.com. Auf GitHub ist er zu finden unter 'github.com/bcherny'.
Table of contents

KAPITEL 2


TypeScript aus der Vogelperspektive


In den folgenden Kapiteln stelle ich Ihnen TypeScript vor, gebe Ihnen einen Überblick über die Funktionsweise des TypeScript-Compilers (TSC) und zeige Ihnen, welche Fähigkeiten TypeScript besitzt und welche Muster Sie damit entwickeln können. Wir beginnen mit dem Compiler.

Der Compiler


Je nachdem, welche Programmiersprache(n) Sie bereits benutzt haben (d.h., bevor Sie dieses Buch gekauft und sich für ein Leben in Sicherheit entschieden haben), haben Sie vermutlich ein anderes Verständnis davon, wie Programme funktionieren. Im Vergleich zu anderen beliebten Sprachen wie JavaScript oder Java funktioniert TypeScript eher ungewöhnlich. Daher ist es sinnvoll, erst einmal auf dem gleichen Stand zu sein, bevor wir weitermachen.

Beginnen wir ganz allgemein: Programme sind Dateien, die von Ihnen  den Programmierern  geschriebenen Text enthalten. Der Text wird von einem speziellen Programm namens Compiler untersucht, interpretiert (»geparst«) und in einen abstrakten Syntaxbaum (»abstract syntax tree«, AST) umgewandelt. Das ist eine Datenstruktur, die z.B. Leerzeichen, Kommentare und Ihre Meinung zur »Leerzeichen oder Tabs«-Debatte ignoriert. Danach konvertiert der Compiler den AST in eine niedriger angesiedelte (lower level) Form namens Bytecode. Diesen Bytecode können Sie dann einem Programm namens Runtime (oder Laufzeitumgebung) übergeben, das den Bytecode auswertet und das Ergebnis zurückgibt. Wenn Sie ein Programm ausführen, weisen Sie also tatsächlich die Laufzeitumgebung an, den Bytecode auszuführen, den der Compiler aus dem AST erzeugt hat, nachdem er diesen aus Ihrem Quellcode geparst hat. Die Details können sich unterscheiden, sind aber für die meisten Hochsprachen gleich oder zumindest ähnlich.

Noch einmal, die Schritte sind:

  1. Programm (Quellcode) wird in einen AST geparst.
  2. AST wird in Bytecode kompiliert.
  3. Bytecode wird von der Laufzeitumgebung ausgeführt.

Eine Besonderheit von TypeScript ist, dass es nicht direkt in Bytecode kompiliert wird, sondern nach ... JavaScript-Code! Diesen können Sie dann wie üblich in Ihrem Browser, mit NodeJS oder manuell auf dem Papier ausführen (Letzteres nur für den Fall, dass Sie dies erst nach dem Aufstand der Maschinen lesen).

Sehr wahrscheinlich fragen Sie sich jetzt: »Moment mal! Im vorigen Kapitel haben Sie gesagt, dass TypeScript meinen Code sicherer macht. An welcher Stelle passiert das denn jetzt?«

Gute Frage: Den wichtigen Schritt habe ich übersprungen: Nachdem der TypeScript-Compiler den AST für Ihr Programm erzeugt, aber bevor es den Code ausgibt, führt er einen Typecheck (bitte merken Sie sich dieses Wort!) für Ihren Code aus.

Typechecker

Ein spezielles Programm, das sicherstellt, dass Ihr Code typsicher ist.

Das Typechecking ist die wahre Magie hinter TypeScript. So stellt TypeScript sicher, dass Ihr Programm wie erwartet funktioniert und es keine offensichtlichen Fehler gibt und dass der/die hübsche Barista von gegenüber Sie auch wirklich zurückruft. (Haben Sie etwas Geduld. Er/sie ist vermutlich bloß gerade sehr beschäftigt.)

Wenn wir das Typechecking und die Ausgabe von JavaScript mit einbeziehen, sieht die Kompilierung von TypeScript ungefähr so aus wie in Abbildung 2-1:

Abbildung 2-1: TypeScript kompilieren und ausführen

Die Schritte 13 werden von TSC übernommen, die Schritte 46 werden von der JavaScript-Runtime ausgeführt, die in Ihrem Browser, NodeJS oder einer anderen von Ihnen verwendeten JavaScript-Engine lebt.

JavaScript-Compiler und -Runtimes werden oft zu einem gemeinsamen Programm namens Engine kombinier