Top-Fragen
Zeitleiste
Chat
Kontext

TypeScript

Programmiersprache, Obermenge von JavaScript, die sich zu JavaScript kompilieren lässt Aus Wikipedia, der freien Enzyklopädie

TypeScript
Remove ads

TypeScript ist eine von Microsoft entwickelte Skriptsprache, die auf den Vorschlägen zum ECMAScript-6-Standard[2] basiert und statische Typisierung zu JavaScript hinzufügt. Sprachkonstrukte von TypeScript, wie Klassen, Vererbung, Module und anonyme Funktionen, wurden auch in ECMAScript 6 übernommen.[3]

Schnelle Fakten Basisdaten ...

TypeScript ist eine echte Obermenge (strict superset) von JavaScript bzw. ECMAScript 2015. Jeder JavaScript-Code ist daher auch gültiger TypeScript-Code, so dass gängige JavaScript-Bibliotheken (wie z. B. jQuery oder Angular) 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]

Der von Microsoft entwickelte TypeScript-Compiler transkompiliert TypeScript-Code nach ECMAScript 5 (ES5), optional auch nach ECMAScript 3 (ES3).

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]).

Remove ads

Geschichte

Zusammenfassung
Kontext

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, das 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 Emacs, vim, Sublime Text[14], WebStorm, Atom[15] 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.[16] Auch erhielt Visual Studio Unterstützung für TypeScript.[17]

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.[18]

Am 22. September 2016 wurde die Version 2.0 veröffentlicht, die diverse neue Funktionen einführte. Unter anderem wurde eine optionale Funktion eingeführt, um zu verhindern, dass Variablen standardmäßig mit null initialisiert sind.[19] Dies soll zu weniger Nullpointer Exceptions 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.

Remove ads

Features

Zusammenfassung
Kontext

TypeScript erweitert die Sprache ECMAScript 6 um folgende Merkmale:

Folgende Elemente wurden durch einen Backport von ECMAScript 2015 hinzugefügt:

Kompatibilität mit JavaScript

TypeScript ist eine Obermenge von ECMAScript 2015, das selbst eine Obermenge von ECMAScript 5 ist, was oft in Referenz mit JavaScript gestellt wird.[21] Ein JavaScript-Programm ist somit auch ein valides TypeScript-Programm. Somit kann TypeScript ohne Probleme JavaScript verwenden. Der Compiler benutzt normalerweise ECMAScript 5, aber es besteht auch die Möglichkeit, Konstrukte von ECMAScript 3 oder 2015 zu verwenden.

TypeScript bietet die Möglichkeit an, existierenden JavaScript-Code und bekannte JavaScript-Bibliotheken zu verwenden.[22]

Methodensignatur

TypeScript bietet Methodensignaturen an, die das Überprüfen von Methoden während der Kompilierung ermöglichen. Dies ist optional und kann ignoriert werden.

function add(left: number, right: number): number {
	return left + right;
}

Die Annotationen für die primitiven Typen sind number, boolean und string.

Klassen

TypeScript unterstützt ECMAScript-2015-Klassen[23], die optionale Methodensignaturen verwenden können:

class Person {
    private name: string;
    private age: number;
    private salary: number;

    constructor(name: string, age: number, salary: number) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    toString(): string {
        return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4
    }
}

Generische Programmierung

TypeScript unterstützt Generische Programmierung.[24] Das ist ein Beispiel einer Identitätsfunktion:[25]

function doSomething<T>(arg: T): T {
    return arg;
}

Union-Typen

Union-Typen werden in TypeScript unterstützt.[26] Es können insbesondere auch komplexe Typen als sogenannte Tagged Union Types[27] definiert werden.

function successor(n: number | bigint): number | bigint {
    return ++n;
}

Module und Namespaces

TypeScript unterscheidet zwischen Modulen und Namespaces. Beide Features in TypeScript unterstützen die Kapselung von Klassen, Schnittstellen, Funktionen und Variablen in Containern. Namespaces (ehemals interne Module) verwenden sofort aufgerufene Funktionsausdrücke von JavaScript, um Code zu kapseln, während Module (ehemals externe Module) JavaScript-Bibliotheksmuster nutzen, um dies zu tun (AMD oder CommonJS).[28]

Remove ads

Design

TypeScript stammt von der Skriptsprache JavaScript ab und will dessen Mängel im Bereich der Entwicklung von großen Applikationen beheben, was von Microsoft selbst veranlasst wurde.[29] Die Herausforderung, mit dem komplexen Code von JavaScript umzugehen, führte dazu, dass ein dafür angepasstes Werkzeug zur Vereinfachung der Entwicklung dieser Komponenten erstellt wurde.[30]

Die Entwickler von TypeScript suchten eine Lösung, die nicht die Kompatibilität mit dem Standard oder die Plattformunabhängigkeit von JavaScript gefährdet. Mit dem Wissen, dass ECMAScript in Zukunft das klassenbasierte Programmieren unterstützen wollte, wurde TypeScript auf diesem Grundsatz entwickelt. Das führte zu einem JavaScript-Compiler mit einigen Erweiterungen, die den Code in JavaScript übersetzen.

TypeScript fügte die Unterstützung des ECMAScript-2015-Standards hinzu.

Versionsgeschichte

Weitere Informationen Versions- nummer, Veröffentlichungs- datum ...
Remove ads

Einzelnachweise

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads