TypeScript JavaScript on Steroids
Kommentare

JavaScript hat einen riesigen Vorteil: die Verbreitung. Kaum jemand behauptet aber, dass JavaScript eine geniale Programmiersprache für komplexere Anwendungen ist. Manche Leute argumentieren, dass nur mangelnde Toolunterstützung das Problem sei. Obwohl jedoch die Entwicklungsumgebungen (IDE) in letzter Zeit massiv verbessert wurden, kann JavaScript in Sachen Entwicklerproduktivität und Laufzeitstabilität Sprachen wie C# nicht das Wasser reichen. Der Grund dafür liegt zum Großteil in der Natur der Sprache. Wie soll eine IDE beispielsweise sinnvolles IntelliSense anbieten, wenn der Aufbau eines Objekts unbekannt ist? Wie soll ein Compiler zur Übersetzungszeit semantische Fehler ohne Typinformationen aufzeigen? Der „Godfather of Programming Languages“ bei Microsoft, Anders Hejlsberg, ist angetreten, dieses Problem an der Wurzel zu packen und zu lösen: TypeScript ist geboren.

Windows Developer

TypeScript hat Ihr Interesse geweckt?

Dann lesen Sie im kommenden Windows Developer Magazin das ausführliche Tutorial zu Microsofts JavaScript-Erweiterung! Rainer Stropek führt Sie systematisch in die neuen Möglichkeiten von TypeScript ein.

Stay tuned!

TypeScript definiert optionale Erweiterungen für JavaScript (um genau zu sein für den Standard Ecmascript 5). Das bedeutet, dass jedes gültige JavaScript-Programm auch automatisch ein gültiges TypeScript Programm ist. Was fügt TypeScript zu JavaScript hinzu? Vor allem (optionale) Typinformationen. Variablen, Parametern, Objekten – allem kann man in TypeScript bei Bedarf einen Typ zuordnen. Dabei handelt es sich um Primitive Types (number, boolean und string) oder Object Types (z. B. Klassen, Module, Schnittstellen, etc.). Verzichtet man auf explizite oder implizite Angabe eines Typs, greift TypeScript auf den Typ Any zurück. Er entspricht einem normalen Wert in JavaScript ohne Typprüfung. Hier ein Beispiel dazu:

var n: number;
var a;		// no type -> any
var s = "Max";	// Contextual typing -> string

n = 5;		// valid because 5 is a number
a = 5;		// valid because a is of type Any
a = "Hello";	// valid because a is of type Any
n = "Hello";	// compile time error because 
			// "Hello" is not a number  

Das Entscheidende dabei ist, dass diese Typinformationen von der IDE (Erweiterung für Visual Studio 2012 ist in der aktuellen Preview-Version von TypeScript bereits enthalten) und vom TypeScript Compiler berücksichtigt werden. Das Ergebnis sind höhere Entwicklerproduktivität und Code, der zur Laufzeit weniger Fehler produziert. Die folgende Abbildung zeigt, was die Typinformationen zum Beispiel in VS2012 ermöglichen. Achten Sie darauf, wie IntelliSense den Typ der Variablen nutzt, um die jeweils zur Verfügung stehenden Funktionen anzubieten. Für a gibt es kein IntelliSense, da a vom Typ Any ist.

Beim Kompilieren eines TypeScript-Programms entsteht reguläres JavaScript. Diese Tatsache eröffnet TypeScript vom ersten Tag an ein sehr breites Anwendungsspektrum: Sie können mit TypeScript JavaScript für Ihre Webanwendung erzeugen, Code für die Verwendung mit node.js generieren oder JavaScript Code für Ihre Windows Store Apps produzieren. Die Typprüfung wird vom Compiler übernommen und findet sich im entstehenden JavaScript Code nicht wieder. Dementsprechend hat sie auch keine Performancenachteile zur Laufzeit. Die folgende Abbildung zeigt, wie das gemeint ist. Aus dem TypeScript Code links wird durch den Compiler der JavaScript Code rechts erzeugt:

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -