www.wikidata.de-de.nina.az
TypeScript ist eine von Microsoft entwickelte Skriptsprache die auf den Vorschlagen zum ECMAScript 6 Standard 2 basiert Sprachkonstrukte von TypeScript wie Klassen Vererbung Module und anonyme Funktionen wurden auch in ECMAScript 6 ubernommen 3 TypeScriptBasisdatenParadigmen funktional imperativ objektorientiert Prototypen Klassen strukturiert skriptingErscheinungsjahr 2012Designer MicrosoftEntwickler Anders Hejlsberg MicrosoftAktuelle Version 5 2 2 1 25 August 2023 Typisierung stark schwach duck dynamisch statisch explizit implizitBeeinflusst von JavaScript Java C Lizenz Apache Lizenzwww typescriptlang orgDer von Microsoft entwickelte TypeScript Compiler kompiliert TypeScript Code nach ECMA Script 3 ES3 optional auch nach ECMA Script 5 ES5 zu plain JavaScript TypeScript ist eine echte Obermenge strict superset von JavaScript jeder JavaScript Code ist daher auch gultiger TypeScript Code so dass gangige JavaScript Bibliotheken wie z B jQuery oder Angular auch in TypeScript verwendet werden konnen 3 TypeScript unterstutzt mit Modulen das Kapseln von Klassen Interfaces Funktionen und Variablen in eigene Namensraume 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 1 Geschichte 2 Features 2 1 Kompatibilitat mit JavaScript 2 2 Methodensignatur 2 3 Klassen 2 4 Generische Programmierung 2 5 Union Typen 2 6 Module und Namespaces 3 Design 4 Versionsgeschichte 5 Weblinks 6 EinzelnachweiseGeschichte BearbeitenDie erste offentlich verfugbare Version von TypeScript wurde 2012 nach zwei Jahren Entwicklung von Microsoft in der Version 0 8 veroffentlicht 8 9 Kurz nach Ankundigung der Sprache wurde diese von Miguel de Icaza gelobt Jedoch bemangelte er dass es keine weiteren Entwicklungsumgebungen abseits von Microsoft Visual Studio gab das 2013 nicht fur Linux und macOS zur Verfugung stand 10 11 Seit 2013 gab es Plugin Support fur Eclipse der von Palantir Technologies bereitgestellt wurde 12 13 Mittlerweile unterstutzen 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 veroffentlicht und brachte Unterstutzung fur generische Typen TypeScript 1 0 wurde 2014 auf Microsofts hauseigener Entwicklerkonferenz Build vorgestellt 16 Auch erhielt Visual Studio Unterstutzung fur TypeScript 17 Im Juli 2014 kundigten die Entwickler von TypeScript einen neuen Compiler an der funfmal 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 veroffentlicht die diverse neue Funktionen einfuhrte Unter anderem wurde eine optionale Funktion eingefuhrt um zu verhindern dass Variablen standardmassig mit null initialisiert sind 19 Dies soll zu weniger Nullpointer Exceptions fuhren Am 30 Juli 2018 wurde die Version 3 0 veroffentlicht Besonders hervorzuheben ist der neue primitive Typ unknown Zusammen mit void dem Einheitstyp und never dem leeren Typ vervollstandigt er die Rander 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 daruber vorliegt Damit ist unknown nichts anderes als das typsichere Aquivalent zu any Features BearbeitenTypeScript erweitert die Sprache ECMAScript 6 um folgende Merkmale Methodensignatur Typinferenz Type Erasure Interfaces Aufzahlungstyp Generische Programmierung Namensraume Tupel Async AwaitFolgende Elemente wurden durch einen Backport von ECMAScript 2015 hinzugefugt Klassen Module 20 Arrow Syntax fur anonyme Funktionen Optionale Parameter und StandardparameterKompatibilitat mit JavaScript Bearbeiten 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 Moglichkeit Konstrukte von ECMAScript 3 oder 2015 zu verwenden TypeScript bietet die Moglichkeit an existierenden JavaScript Code und bekannte JavaScript Bibliotheken zu verwenden 22 Methodensignatur BearbeitenTypeScript bietet Methodensignaturen an die das Uberprufen von Methoden wahrend der Kompilierung ermoglichen Dies ist optional und kann ignoriert werden function add left number right number number return left right Die Annotationen fur die primitiven Typen sind number boolean und string Klassen BearbeitenTypeScript unterstutzt ECMAScript 2015 Klassen 23 die optionale Methodensignaturen verwenden konnen 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 BearbeitenTypeScript unterstutzt Generische Programmierung 24 Das ist ein Beispiel einer Identitatsfunktion 25 function doSomething lt T gt arg T T return arg Union Typen Bearbeiten Union Typen werden in TypeScript unterstutzt 26 Die Werte werden von der Sprache implizit mit einem Typ getaggt und konnen von typeof abgerufen werden function successor n number bigint number bigint return n Module und Namespaces Bearbeiten TypeScript unterscheidet zwischen Modulen und Namespaces Beide Features in TypeScript unterstutzen die Kapselung von Klassen Schnittstellen Funktionen und Variablen in Containern Namespaces ehemals interne Module verwenden sofort aufgerufene Funktionsausdrucke von JavaScript um Code zu kapseln wahrend Module ehemals externe Module JavaScript Bibliotheksmuster nutzen um dies zu tun AMD oder CommonJS 27 Design BearbeitenTypeScript stammt von der Skriptsprache JavaScript ab und will dessen Mangel im Bereich der Entwicklung von grossen Applikationen beheben was von Microsoft selbst veranlasst wurde 28 Die Herausforderung mit dem komplexen Code von JavaScript umzugehen fuhrte dazu dass ein dafur angepasstes Werkzeug zur Vereinfachung der Entwicklung dieser Komponenten erstellt wurde 29 Die Entwickler von TypeScript suchten eine Losung die nicht die Kompatibilitat mit dem Standard oder die Plattformunabhangigkeit von JavaScript gefahrdet Mit dem Wissen dass ECMAScript in Zukunft das klassenbasierte Programmieren unterstutzen wollte wurde TypeScript auf diesem Grundsatz entwickelt Das fuhrte zu einem JavaScript Compiler mit einigen Erweiterungen die den Code in JavaScript ubersetzen TypeScript fugte die Unterstutzung des ECMAScript 2015 Standards hinzu Versionsgeschichte BearbeitenVersions nummer Veroffentlichungs datum Anderungen0 8 1 Oktober 2012 Erste Veroffentlichung0 9 18 Juni 2013 Generische Ausdrucke Uberladen von konstanten Parametern Enum 30 1 1 6 Oktober 2014 Performanceverbesserungen1 3 12 November 2014 protected Zugriffsmodifikator Tupel Typen1 4 20 Januar 2015 Union Typen let und const Deklarationen Template Strings Type Guards Type Aliases1 5 20 Juli 2015 ES6 Module namespace Keyword for ofSupport Decorator1 6 16 September 2015 JSX Unterstutzung Intersection Typen lokale Typdeklarationen abstrakte Klassen und Methoden benutzerdefinierte Guard Funktionen1 7 30 November 2015 Unterstutzung fur async und await 31 1 8 22 Februar 2016 Constraints Generics Kontrollfluss Fehleranalyse Stringliteral Typen allowJs2 0 22 September 2016 null und undefined verhindernde Typen kontrollflussbasierte Typanalyse Discriminated Uniontypen never Typ readonly Keyword this2 1 8 November 2016 keyof und Lookup Typen gemappte Typen REST und Spread Eigenschaften fur Objekte2 2 22 Februar 2017 Mix in Klassen object Typ2 3 27 April 2017 async Iteration generische Standardparameter strict Option2 4 27 Juni 2017 dynamische import Ausdrucke String Enums verbesserte Vererbung fur generische Datentypen strikte Kontravarianz fur Callback Parameter2 5 31 August 2017 optionale Catch Clause Variablen fur Exceptions2 6 31 Oktober 2017 strikte Funktionstypen2 7 31 Januar 2018 const benannte Eigenschaften Tupel mit fester Lange2 8 27 Marz 2018 Conditional Typen Verbesserung von keyof in Kombination mit Intersection Typen2 9 31 Mai 2018 Unterstutzung von number und symbol benannten Eigenschaften mit keyof und endlichen Abbildungen import Typen 3 0 30 Juli 2018 Tupel als REST Parameter Spread Ausdrucke fur Tupel generische REST Parameter Optionale Elemente in Tupel unknown als Universaltyp siehe auch Typentheorie defaultProps in JSX 32 3 1 27 September 2018 Gemappte Tuple und Array Typen3 2 30 November 2018 Strengere Kontrolle von bind call und apply3 3 31 Januar 2019 Lockere Regeln fur Methoden der Verbindungsarten inkrementelle Builds fur Verbundprojekte3 4 29 Marz 2019 Verbesserungen zu inkrementellen Builds Composite Projects Inference Read Only Arrays Type Checking fur globale Variablen und diverse andere3 5 29 Mai 2019 Omit als neuer integrierter Typ 33 3 6 28 August 2019 striktere Iterator und Generatorfunktionen Unterstutzung fur Unicode bei Bezeichnern 34 3 7 5 November 2019 Optionale Verkettung Nullish Coalescing Operator Assertion Functions verbesserte Unterstutzung fur Methoden die never zuruckliefern und viele weitere 35 3 8 20 Februar 2020 Type Only Imports und Exports private Felder Top Level await und viele weitere Anderungen 36 3 9 12 Mai 2020 Geschwindigkeitsverbesserungen beim Build ts expect error Kommentar Verbesserungen fur Editoren und weitere Anderungen 37 4 0 20 August 2020 Variadische Tupel Namen fur Elemente in einem Tupel bessere JSX Unterstutzung 38 4 1 19 November 2020 Verkettung von String Typen 39 4 2 23 Februar 2021 bessere Erhaltung von Typaliasen Fuhrende mittlere Restelemente in Tupeltypen Strengere Uberprufungen fur den in Operator abstrakte Konstruktionssignaturen Verbesserte Uberprufungen von nicht aufgerufenen Funktionen in logischen Ausdrucken Destrukturierte Variablen konnen explizit als unbenutzt markiert werden Lockere Regeln zwischen optionalen Eigenschaften und String Index Signaturen 40 4 3 26 Mai 2021 Separate Parametertypen in Eigenschaften gettern und settern Kontextbezogene Eingrenzung fur Generics 41 4 4 26 August 2021 Kontrollflussanalyse von Aliased Bedingungen und Discriminants Indexsignaturen von Symbolen und Schablonenstringmustern Voreinstellung auf den unknown Typ in Catch Variablen static Blocke in Klassen Performance Verbesserungen 42 4 5 17 November 2021 Der await Typ und promise Verbesserungen Deaktivierung der Import Prufungtype Deklarationen fur Importnamen Prufungen auf private Felder in Objektenimport Prufungen 43 4 6 28 Februar 2022 Erlaubter Code in Konstruktoren vor super Verbesserte Prufungen der Rekursionstiefe 44 4 7 24 Mai 2022 Kontrolle uber die Modul Erkennung Kontrollflussanalyse fur den Zugriff auf eingeklammerte Elemente Verbesserte Funktionsinferenz in Objekten und Methoden Instanziierungsausdrucke erweiterte Beschrankungen auf infer type Variablen Optionale Varianz Annotationen fur type Parameter 45 4 8 25 August 2022 Verbesserte Schnittpunktreduzierung Vereinigungskompatibilitat und Verengung Verbesserte Inferenz fur Infer Typen in Template String Typen build watch und incremental Leistungsverbesserungen Fehler beim Vergleich von Objekt und Array Literalen Verbesserte Inferenz aus Bindungsmustern Fehlerbehebungen bei der Dateiuberwachung insbesondere bei Git Checkouts Leistungsverbesserungen bei Find All References Ausschliessen von bestimmten Dateien bei Auto Import 46 4 9 15 November 2022 satisfies Operator Auto Accessors in Klassen 47 5 0 16 Marz 2023 Decorators Unterstutzung von export type 48 5 1 1 Juni 2023 Vereinfachte Handhabung von undefined als Funktionsruckgabewert Unabhangige Typen fur get und set Namensraume fur JSX Attribute 49 Weblinks BearbeitenOffizielle WebsiteEinzelnachweise Bearbeiten Release TypeScript 5 2 2 ECMAScript Wiki Nicht mehr online verfugbar Archiviert vom Original am 22 Mai 2008 abgerufen am 3 April 2013 englisch a b TypeScript Abgerufen am 3 April 2013 englisch TypeScript Homepage An introduction to TypeScript s module system Nicht mehr online verfugbar Archiviert vom Original am 1 Februar 2014 abgerufen am 4 Februar 2014 englisch Artikel zum Modulsystem von TypeScript nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot blog oio de grunt ts Abgerufen am 21 Februar 2014 englisch TypeScript Maven Plugin Abgerufen am 21 Februar 2014 englisch TypeScript Gradle Plugin Abgerufen am 21 Februar 2014 englisch IDG News Service staff Microsoft augments JavaScript for large scale development In InfoWorld infoworld com abgerufen am 11 Juli 2018 Announcing TypeScript 1 0 microsoft com abgerufen am 11 Juli 2018 COPYRIGHT TypeScript First Impressions Miguel de Icaza Abgerufen am 11 Juli 2018 englisch 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 Julia Schmidt TypeScript Unterstutzung fur Eclipse Abgerufen am 11 Juli 2018 TypeScript In Eclipse Plugins Bundles and Products Eclipse Marketplace eclipse org abgerufen am 11 Juli 2018 Sublime Text 4 Abgerufen am 16 August 2022 englisch TypeStrong atom typescript Abgerufen am 11 Juli 2018 englisch TypeScript Abgerufen am 11 Juli 2018 Working with TypeScript in Visual Studio 2012 In Dr Dobb s drdobbs com abgerufen am 11 Juli 2018 New Compiler and Moving to GitHub msdn com abgerufen am 11 Juli 2018 TypeScript Microsoft s JavaScript for big applications reaches version 2 0 In Ars Technica arstechnica com abgerufen am 11 Juli 2018 Microsoft Previews New JavaScript Like Programming Language TypeScript In TechCrunch Abgerufen am 18 Mai 2020 amerikanisches Englisch Angular Abgerufen am 18 Mai 2020 Typed JavaScript at Any Scale Abgerufen am 18 Mai 2020 englisch TypeScript abstract class In Qualified One 2 Dezember 2022 abgerufen im 1 Januar 1 englisch Announcing TypeScript 0 9 18 Juni 2013 abgerufen am 18 Mai 2020 amerikanisches Englisch Handbook Generics Abgerufen am 18 Mai 2020 englisch Handbook Unions and Intersection Types In www typescriptlang org Abgerufen am 30 November 2020 englisch Sonke Sothmann An introduction to TypeScript s module system blog oio de 31 Januar 2014 archiviert vom Original am 1 Februar 2014 abgerufen am 21 Februar 2014 nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot blog oio de Scott Hanselman What is TypeScript and why with Anders Hejlsberg Abgerufen am 18 Mai 2020 englisch kexugit TypeScript JavaScript Development at Application Scale Abgerufen am 18 Mai 2020 amerikanisches Englisch Announcing TypeScript 0 9 18 Juni 2013 abgerufen am 19 Januar 2021 amerikanisches Englisch https www typescriptlang org docs handbook release notes typescript 1 7 html abgerufen am 1 August 2019 Announcing TypeScript 3 0 30 Juli 2018 abgerufen am 19 Januar 2021 amerikanisches Englisch Announcing TypeScript 3 5 29 Mai 2019 abgerufen am 19 Januar 2021 amerikanisches Englisch Announcing TypeScript 3 6 28 August 2019 abgerufen am 19 Januar 2021 amerikanisches Englisch Announcing TypeScript 3 7 5 November 2019 abgerufen am 2 Marz 2020 amerikanisches Englisch Announcing TypeScript 3 8 20 Februar 2020 abgerufen am 2 Marz 2020 amerikanisches Englisch Announcing TypeScript 3 9 12 Mai 2020 abgerufen am 14 Mai 2020 amerikanisches Englisch Announcing TypeScript 4 0 20 August 2020 abgerufen am 19 Januar 2021 amerikanisches Englisch Announcing TypeScript 4 1 19 November 2020 abgerufen am 19 Januar 2021 amerikanisches Englisch Announcing TypeScript 4 2 23 Februar 2021 abgerufen am 31 Mai 2022 amerikanisches Englisch Announcing TypeScript 4 3 26 Mai 2021 abgerufen am 31 Mai 2022 amerikanisches Englisch Announcing TypeScript 4 4 26 August 2021 abgerufen am 31 Mai 2022 amerikanisches Englisch Announcing TypeScript 4 5 17 November 2021 abgerufen am 31 Mai 2022 amerikanisches Englisch Announcing TypeScript 4 6 28 Februar 2022 abgerufen am 31 Mai 2022 amerikanisches Englisch Announcing TypeScript 4 7 24 Mai 2022 abgerufen am 31 Mai 2022 amerikanisches Englisch Daniel Rosenwasser Announcing TypeScript 4 8 25 August 2022 abgerufen am 21 Oktober 2022 amerikanisches Englisch Daniel Rosenwasser Announcing TypeScript 4 9 15 November 2022 abgerufen am 18 Juni 2023 amerikanisches Englisch Daniel Rosenwasser Announcing TypeScript 5 0 16 Marz 2023 abgerufen am 18 Juni 2023 amerikanisches Englisch Daniel Rosenwasser Announcing TypeScript 5 1 1 Juni 2023 abgerufen am 18 Juni 2023 amerikanisches Englisch Abgerufen von https de wikipedia org w index php title TypeScript amp oldid 234699202