Hauptmenü öffnen

TypeScript

Programmiersprache

TypeScript ist eine von Microsoft entwickelte Programmiersprache, die auf den Vorschlägen zum zukünftigen ECMAScript-6-Standard[2] basiert. Sprachkonstrukte von TypeScript, wie Klassen, Vererbung, Module, anonyme Funktionen und Generics wurden auch in ECMAScript 6 übernommen.[3]

TypeScript
TypeScript Logo.svg
Basisdaten
Paradigmen: funktional, imperativ, objektorientiert (Prototypen, Klassen), strukturiert, skripting
Erscheinungsjahr: 2012
Entwickler: Anders Hejlsberg, Microsoft
Aktuelle Version: 3.1.6  (01. November 2018[1])
Typisierung: stark, schwach, duck, dynamisch, statisch, explizit, implizit
Beeinflusst von: JavaScript, Java, C#
Lizenz: Apache-Lizenz
www.typescriptlang.org

Der von Microsoft entwickelte TypeScript-Compiler kompiliert TypeScript-Code nach ECMA Script 3 (ES3), optional auch nach ECMA Script 5 (ES5). Jeder JavaScript-Code ist auch gültiger TypeScript-Code, sodass gängige JavaScript-Bibliotheken (wie z. B. jQuery oder AngularJS) auch in TypeScript verwendet werden können.[3]

TypeScript unterstützt mit Modulen das Kapseln von Klassen, Interfaces, Funktionen und Variablen in eigene Namensräume. Dabei wird zwischen internen und externen Modulen unterschieden. Interne Module lehnen sich an die Modul-Spezifikation aus ECMAScript 6 an, wohingegen externe Module eine JavaScript-Bibliothek (AMD oder CommonJS) nutzen.[4]

TypeScript kann mit Hilfe von Plug-ins in verschiedene Build-Management-Tools integriert werden, darunter Grunt (grunt-ts[5]), Apache Maven (TypeScript Maven Plugin[6]) und Gradle (TypeScript Gradle Plugin[7]).

Inhaltsverzeichnis

GeschichteBearbeiten

Die erste öffentlich verfügbare Version von TypeScript wurde 2012 nach zwei Jahren Entwicklung von Microsoft in der Version 0.8 veröffentlicht.[8][9] Kurz nach Ankündigung der Sprache wurde diese von Miguel de Icaza gelobt. Jedoch bemängelte er, dass es keine weiteren Entwicklungsumgebungen abseits von Microsoft Visual Studio gab, welches 2013 nicht für Linux und MacOS zur Verfügung stand.[10][11] Seit 2013 gab es Plugin-Support für Eclipse, der von Palantir Technologies bereitgestellt wurde.[12][13] Mittlerweile unterstützen eine Vielzahl von Texteditoren und Entwicklungsumgebungen TypeScript. Darunter befinden sich unter anderem Emacs, vim, Sublime Text, WebStorm, Atom[14] und Microsofts eigener Editor Visual Studio Code.

TypeScript 0.9 wurde 2013 veröffentlicht und brachte Unterstützung für Generische Typen.

TypeScript 1.0 wurde 2014 auf Microsofts hauseigener Entwicklerkonferenz Build vorgestellt.[15] Auch erhielt Visual Studio Unterstützung für TypeScript.[16]

Im Juli 2014 kündigten die Entwickler von TypeScript einen neuen Compiler an, der fünfmal schneller sein sollte als der alte. Gleichzeitig wurde der bisherige Quellcode von TypeScript von CodePlex zu GitHub migriert.[17]

Am 22. September 2016 wurde die Version 2.0 veröffentlicht, welche diverse neue Funktionen einführte. Unter anderem wurde eine optionale Funktion eingeführt um zu verhindern, dass Variablen standardmäßig mit null initialisiert sind.[18] Dies soll zu weniger Nullpointerexceptions führen.

Am 30. Juli 2018 wurde die Version 3.0 veröffentlicht. Besonders hervorzuheben ist der neue primitive Typ unknown. Zusammen mit void (dem Einheitstyp) und never (dem leeren Typ) vervollständigt er die Ränder der Typenhierarchie: unknown ist ein Universaltyp; einer Variable davon kann jedes Objekt zugewiesen werden und entsprechend kann man von einem unknown-Wert nichts erwarten. TypeScript verlangt dann eine Assertion oder Checks. Im Unterschied dazu ist any zwar auch ein Universaltyp, jedoch erlaubt TypeScript die Verwendung der Werte direkt, obwohl eigentlich keine Information darüber vorliegt. Damit ist unknown nichts anderes als das typsichere Äquivalent zu any.

VersionsgeschichteBearbeiten

Versionsnummer Veröffentlichungsdatum Änderungen
0.8 1. Oktober 2012 Erste Veröffentlichung
0.9 18. Juni 2013
1.1 6. Oktober 2014 Performanceverbesserungen
1.3 12. November 2014 protected Zugriffsmodifikator, Tupel-Typen
1.4 20. Januar 2015 Union-Typen, let und const Deklarationen, Template Strings, Type Guards, Type Aliases
1.5 20. Juli 2015 ES6-Module, namespace Keyword, for..ofSupport, Decorator
1.6 16. September 2015 JSX Unterstützung, Intersection Typen, lokale Typdeklarationen, abstrakte Klassen und Methoden, benutzerdefinierte Guard-Funktionen
1.7 30. November 2015 Unterstützung für sync und await
1.8 22. Februar 2016 Constraints Generics, Kontrollfluss Fehleranalyse, Stringliteral Typen, allowJs
2.0 22. September 2016 null- und undefined-verhindernde Typen, kontrollflussbasierte Typanalyse, Discriminated Uniontypen, never Typ, readonly Keyword, this
2.1 8. November 2016 keyof und Lookup Typen, gemappte Typen, Rest- und Spreadeigenschaften für Objekte
2.2 22. Februar 2017 Mix-in Klassen, object Typ
2.3 27. April 2017 async Iteration, generische Standardparameter, strict-Option
2.3 27. Juni 2017 dynamische import Ausdrücke, String Enums, verbesserte Vererbung für generische Datentypen, strikte Kontravarianz für Callback Parameter
2.5 31. August 2017 optionale Catch Clause Variablen für Exceptions
2.6 31. Oktober 2017 strikte Funktionstypen
2.7 31. Januar 2018 const-benannte Eigenschaften, Tupel mit fester Länge
2.8 27. März 2018 Conditional-Typen, Verbesserung von keyof in Kombination mit Intersection-Typen
2.9 31. Mai 2018 Unterstützung von number und symbol benannten Eigenschaften mit keyof und endlichen Abbildungen. import(...)-Typen.
3.0 30. Juli 2018 Tupel als Restparameter, Spread-Ausdrücke für Tupel, generische Restparameter. Optionale Elemente in Tupeln. Der Typ unknown-Typ als Universaltyp (siehe auch Typentheorie#Spezielle Typen). Unterstützung für defaultProps in JSX.
3.1 27. September 2018 Gemappte Tuple und Array-Typen

WeblinksBearbeiten

  • DefinitelyTyped: Sammlung von TypeScript-Interfaces für beliebte JavaScript-Frameworks

EinzelnachweiseBearbeiten

  1. https://github.com/Microsoft/TypeScript/releases
  2. ECMAScript Wiki. Abgerufen am 3. April 2013 (englisch).
  3. a b TypeScript. Abgerufen am 3. April 2013 (englisch, TypeScript Homepage).
  4. An introduction to TypeScript’s module system. Abgerufen am 4. Februar 2014 (englisch, Artikel zum Modulsystem von TypeScript).
  5. grunt-ts. Abgerufen am 21. Februar 2014 (englisch).
  6. TypeScript Maven Plugin. Abgerufen am 21. Februar 2014 (englisch).
  7. TypeScript Gradle Plugin. Abgerufen am 21. Februar 2014 (englisch).
  8. IDG News Service staff: Microsoft augments JavaScript for large-scale development. In: InfoWorld. (infoworld.com [abgerufen am 11. Juli 2018]).
  9. Announcing TypeScript 1.0. (microsoft.com [abgerufen am 11. Juli 2018]).
  10. @COPYRIGHT@: TypeScript: First Impressions - Miguel de Icaza. Abgerufen am 11. Juli 2018 (englisch).
  11. Matt Baxter-Reynolds: Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript? | ZDNet. In: ZDNet. (zdnet.com [abgerufen am 11. Juli 2018]).
  12. Julia Schmidt: TypeScript-Unterstützung für Eclipse. Abgerufen am 11. Juli 2018 (deutsch).
  13. TypeScript. In: Eclipse Plugins, Bundles and Products - Eclipse Marketplace. (eclipse.org [abgerufen am 11. Juli 2018]).
  14. TypeStrong/atom-typescript. Abgerufen am 11. Juli 2018 (englisch).
  15. TypeScript. Abgerufen am 11. Juli 2018.
  16. Working with TypeScript in Visual Studio 2012. In: Dr. Dobb's. (drdobbs.com [abgerufen am 11. Juli 2018]).
  17. New Compiler and Moving to GitHub. (msdn.com [abgerufen am 11. Juli 2018]).
  18. TypeScript, Microsoft’s JavaScript for big applications, reaches version 2.0. In: Ars Technica. (arstechnica.com [abgerufen am 11. Juli 2018]).