© prettyboy80/Shutterstock.com
Mobile Technology
TypeScript als Alternative zu JavaScript

Tolle Typen

JavaScript ist heutzutage eine der bedeutsamsten Programmiersprachen im Web - daran besteht kein Zweifel. Ebenso wenig ist jedoch zweifelhaft, dass JavaScript nicht gerade zu den einfachen Programmiersprachen gehört. Spätestens wenn es darum geht, komplexe Anwendungen zu erstellen, sollten Sie daher einen Blick auf TypeScript werfen.

Holger Zaman


Der JavaScript-Aufsatz TypeScript stellt dem Entwickler eine Syntax zur Verfügung, die an andere objektorientierte Sprachen wie C# oder Java erinnert. Der TypeScript-Compiler erzeugt dann das eigentliche JavaScript. Zur Fehlervermeidung übernimmt er außerdem eine Typprüfung: Sind keine Typangaben vorhanden, werden sie per Typinferenz ermittelt. Darüber hinaus erstellt der Compiler IntelliSense-Hinweise für benutzerdefinierte Klassen.

Im Folgenden werde ich mich immer wieder auf Konstrukte wie Klassen und Interfaces beziehen und somit Parallelen zu anderen Sprachen wie C# ziehen. Dennoch sollten Sie sich immer des großen Unterschieds bewusst sein, der zwischen einer stark typisierten Sprache und einer dynamischen Sprache wie JavaScript besteht. Manch augenfällige Übereinstimmung entpuppt sich bei näherem Hinsehen lediglich als begrifflich oder abstrakt konzeptionell.

Klassen

Klassen werden mit dem Schlüsselwort class definiert und können einen Konstruktor, Methoden, Felder und Eigenschaften enthalten. So stellt die Klasse Employee ein stark vereinfachtes Model für die Entität Employee aus Northwind [1] zur Verfügung:

class Employee { FirstName; LastName; BirthDate;}

Die Klasse hat drei Eigenschaften, deren Typ man ganz JavaScript-typisch nur erahnen kann. Soll der Typ angegeben werden, erfolgt dies durch einen Doppelpunkt getrennt hinter dem zu typisierenden Objekt. TypeScript verfügt über folgende primitive Typen (dazu kommen noch die JavaScript-Typen Date und RegExp):

numberbooleanstringArray (generisch)Enumanyvoid

Alle primitiven Typen können zur Typisierung verwendet werden, wobei void natürlich nur bei Methoden eingesetzt werden kann, die keine Rückgabe haben. Auch benutzerdefinierte Typen lassen sich zur Typisierung verwenden. Der nachfolgende Code erweitert unseren ersten Codeschnipsel zum einen um die Typisierung der Eigenschaften LastName, FirstName und BirthDate, zum anderen wird – in Abweichung zur Entität Employee in North­wind – ein Feld vom Typ Employee eingefügt:

class Employee { /*Felder*/ LastName: string; FirstName: string; BirthDate: Date; Boss: Employee;}

Da die hier vorgenommene Typisierung von JavaScript nicht erkannt wird, hat sie keinerlei Effekt auf den generierten JavaScript-Code. Wozu also das Ganze? Die Typisierung dient dem TypeScript-Compiler zur Typprüfung, zur Bestimmung nicht typisierter Objekte (Type Inference) und zur Erzeugung von Informationen für IntelliSense.

Alle Mitglieder einer Klasse sind automatisch öffentlich. M...

Mobile Technology
TypeScript als Alternative zu JavaScript

Tolle Typen

JavaScript ist heutzutage eine der bedeutsamsten Programmiersprachen im Web - daran besteht kein Zweifel. Ebenso wenig ist jedoch zweifelhaft, dass JavaScript nicht gerade zu den einfachen Programmiersprachen gehört. Spätestens wenn es darum geht, komplexe Anwendungen zu erstellen, sollten Sie daher einen Blick auf TypeScript werfen.

Holger Zaman


Der JavaScript-Aufsatz TypeScript stellt dem Entwickler eine Syntax zur Verfügung, die an andere objektorientierte Sprachen wie C# oder Java erinnert. Der TypeScript-Compiler erzeugt dann das eigentliche JavaScript. Zur Fehlervermeidung übernimmt er außerdem eine Typprüfung: Sind keine Typangaben vorhanden, werden sie per Typinferenz ermittelt. Darüber hinaus erstellt der Compiler IntelliSense-Hinweise für benutzerdefinierte Klassen.

Im Folgenden werde ich mich immer wieder auf Konstrukte wie Klassen und Interfaces beziehen und somit Parallelen zu anderen Sprachen wie C# ziehen. Dennoch sollten Sie sich immer des großen Unterschieds bewusst sein, der zwischen einer stark typisierten Sprache und einer dynamischen Sprache wie JavaScript besteht. Manch augenfällige Übereinstimmung entpuppt sich bei näherem Hinsehen lediglich als begrifflich oder abstrakt konzeptionell.

Klassen

Klassen werden mit dem Schlüsselwort class definiert und können einen Konstruktor, Methoden, Felder und Eigenschaften enthalten. So stellt die Klasse Employee ein stark vereinfachtes Model für die Entität Employee aus Northwind [1] zur Verfügung:

class Employee { FirstName; LastName; BirthDate;}

Die Klasse hat drei Eigenschaften, deren Typ man ganz JavaScript-typisch nur erahnen kann. Soll der Typ angegeben werden, erfolgt dies durch einen Doppelpunkt getrennt hinter dem zu typisierenden Objekt. TypeScript verfügt über folgende primitive Typen (dazu kommen noch die JavaScript-Typen Date und RegExp):

numberbooleanstringArray (generisch)Enumanyvoid

Alle primitiven Typen können zur Typisierung verwendet werden, wobei void natürlich nur bei Methoden eingesetzt werden kann, die keine Rückgabe haben. Auch benutzerdefinierte Typen lassen sich zur Typisierung verwenden. Der nachfolgende Code erweitert unseren ersten Codeschnipsel zum einen um die Typisierung der Eigenschaften LastName, FirstName und BirthDate, zum anderen wird – in Abweichung zur Entität Employee in North­wind – ein Feld vom Typ Employee eingefügt:

class Employee { /*Felder*/ LastName: string; FirstName: string; BirthDate: Date; Boss: Employee;}

Da die hier vorgenommene Typisierung von JavaScript nicht erkannt wird, hat sie keinerlei Effekt auf den generierten JavaScript-Code. Wozu also das Ganze? Die Typisierung dient dem TypeScript-Compiler zur Typprüfung, zur Bestimmung nicht typisierter Objekte (Type Inference) und zur Erzeugung von Informationen für IntelliSense.

Alle Mitglieder einer Klasse sind automatisch öffentlich. M...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang