![]() |
Pro TypeScript Steve Fenton Apress August 2014 ![]() |
TypeScript ist ein JavaScript-Superset, d.h., valides JavaScript ist valides TypeScript. TypeScript kennt aber weitere Konzepte, die später dann nach JavaScript kompiliert, oder – etwas genauer und spektakulärer – transpiliert werden.
Bisher habe ich einen Bogen um solche Transpiler wie CoffeeScript und Dart gemacht. Die Tatsache, dass die AngularJS-Entwickler mit TypeScript arbeiten, hat mich dann dazu gebracht, mir das einmal an einem Nachmittag anzuschauen. TypeScript gefällt mir sehr gut, weil
- es eben nur ein JavaScript-Superset ist und man deswegen keine zweite Programmiersprache lernen muss,
- mir die zusätzlichen Konzepte allesamt hilfreich vorkommen,
- es IDE-Unterstützung für Visual Studio, Eclipse, Webstorm u.a. gibt
- und die Lernkurve für Java- und JavaScript-Entwickler sehr flach ist.
Was sind das jetzt für zusätzliche Konzepte?
- Variablen können typisiert werden. Es gibt sogar Unterstützung für Generics.
- Es gibt Interface-, Klassen- und Modulkonzepte, wie man sie ähnlich auch von Java kennt.
- Mit Modulen und Mixins lassen sich wiederverwendbare Module aufbauen und miteinander kombinieren.
Der Mehrwert all dieser Konzepte kommt erst wirklich bei größeren JavaScript-Projekten zum Tragen und helfen die typischen Probleme wie Scope-Probleme (eine Variable ist in den globalen Namespace “gerutscht”) zu verhindern. Editoren können damit auch verbessertes Refactoring anbieten. Mein WebStorm leistet hier schon Beachtliches.
Praktisch für alle wichtigen Javascript-Frameworks gibt es bereits ein Declaration File (.d.ts), mit dem die wichtigen Objekte und Methoden der Frameworks im TypeScript-Editor als Typen auftauchen und somit Autovervollständigung funktioniert.
Das Buch bietet aus meiner Sicht deutlichen Mehrwert gegenüber der Onlinedokumentation.