Was bedeutet Typescript 4
TypeScript 4.x. Diese Version der Sprache repräsentiert unsere nächste Generation von TypeScript-Releases, da wir tiefer in die Expressivität, Produktivität und Skalierbarkeit einsteigen. In den Typescript Schulungen kann auf Einzelheiten eingegangen werden.
Wenn Sie mit TypeScript nicht vertraut sind, ist es eine Sprache, die auf JavaScript (siehe auch JavaScript Seminar) aufbaut, indem sie eine Syntax für statische Typen hinzufügt. Die Idee dahinter ist, dass Sie die Typen Ihrer Werte und die Stellen, an denen sie verwendet werden, aufschreiben und TypeScript verwenden können, um Ihren Code zu überprüfen und Sie auf Fehler hinzuweisen, bevor Sie Ihren Code ausführen (und sogar bevor Sie Ihre Datei speichern). Sie können dann den TypeScript-Compiler verwenden, um Typen aus Ihrem Code zu entfernen, so dass Sie ein sauberes, lesbares JavaScript erhalten, das überall läuft. Über die Überprüfung hinaus verwendet TypeScript statische Typen auch, um gute Editor-Tools wie Autovervollständigung, Code-Navigation, Refactorings und mehr zu unterstützen. Wenn Sie JavaScript in einem Editor wie Visual Studio (siehe auch Visual Studio Training) Code oder Visual Studio verwendet haben, haben Sie bereits eine Erfahrung mit Typen und TypeScript gemacht.
Mit TypeScript 4.0 gibt es keine großen, bahnbrechenden Änderungen. Wenn Sie neu in der Sprache sind, ist jetzt der beste Zeitpunkt, um mit ihr zu beginnen. Die Community ist bereits da und wächst, mit funktionierendem Code und guten neuen Ressourcen zum Lernen. Und eines sollten Sie nicht vergessen: Trotz all der guten Dinge, die wir in 4.0 bringen, müssen Sie wirklich nur die Grundlagen von TypeScript kennen, um produktiv zu sein!
Wenn Sie TypeScript bereits in Ihrem Projekt verwenden, können Sie es entweder über NuGet beziehen oder npm verwenden:
TypeScript ist heute ein Kernbestandteil des JavaScript-Stacks vieler Leute. Auf npm wurde TypeScript im Juli zum ersten Mal über 50 Millionen Mal monatlich heruntergeladen! Und obwohl wir wissen, dass es immer Raum für Wachstum und Verbesserungen gibt, ist es klar, dass die meisten Leute, die in TypeScript programmieren, es wirklich genießen. In der jüngsten Entwicklerumfrage von StackOverflow steht TypeScript auf Platz 2 der beliebtesten Sprachen. In der jüngsten State of JS-Umfrage sagten rund 89 % der Entwickler, die TypeScript verwendet haben, dass sie es wieder verwenden würden.
Es lohnt sich, ein wenig zu erforschen, wie wir hierher gekommen sind. In den letzten beiden Hauptversionen haben wir auf einige Highlights zurückgeblickt, die über die Jahre hinweg glänzten. Für TypeScript 4.0 werden wir diese Tradition fortsetzen.
Wenn wir von 3.0 an zurückblicken, gibt es eine schwindelerregende Anzahl von Änderungen, aber TypeScript 3.0 selbst kam mit einem Schlag heraus. Die Vereinheitlichung von Tupel-Typen und Parameterlisten war ein großes Highlight und ermöglichte eine Menge bestehender JavaScript-Patterns für Funktionen. Außerdem wurden Projektreferenzen eingeführt, um die Skalierung, Organisation und gemeinsame Nutzung von Codebases zu erleichtern. Eine kleine Änderung, die große Auswirkungen hatte, war, dass 3.0 eine typsichere Alternative zu jedem called unknown einführte.
TypeScript 3.1 erweiterte die Fähigkeiten von gemappten Typen auf Tupel- und Array-Typen und erleichterte das Anhängen von Eigenschaften an Funktionen erheblich, ohne auf TypeScript-spezifische Laufzeitfunktionen zurückgreifen zu müssen, die nicht mehr verwendet werden.
TypeScript 3.2 erlaubte die Ausbreitung von Objekten auf generischen Typen und nutzte die Möglichkeiten von 3.0, um die Meta- Programmierung (siehe Programmierung Training) mit Funktionen durch strikte Typisierung von bind, call und apply besser zu modellieren. TypeScript 3.3 konzentrierte sich ein wenig auf die Stabilität nach 3.2, brachte aber auch Qualitätsverbesserungen bei der Verwendung von Union-Type- Methoden (mehr dazu Methoden Seminar) und fügte dateiinkrementelle Builds unter --build mode hinzu.
In der Version 3.4 wurde die Unterstützung funktionaler Muster weiter ausgebaut, mit besserer Unterstützung für unveränderliche Datenstrukturen und verbesserter Inferenz auf generische Funktionen höherer Ordnung. Als großes Plus wurde in dieser Version das Flag --incremental eingeführt, eine Möglichkeit, schnellere Kompilierungen und Typüberprüfungen zu erhalten, indem ein vollständiger Neuaufbau bei jedem Durchlauf von TypeScript ohne Projektreferenzen vermieden wird.
Mit TypeScript 3.5 und 3.6 wurden die Regeln für das Typsystem verschärft und die Kompatibilitätsprüfung verbessert.
TypeScript 3.7 war ein sehr bemerkenswertes Release, weil es eine reichhaltige Kombination aus neuen Typsystem-Features mit ECMAScript-Features bot. Auf der Seite des Typsystems gab es rekursive Typ-Alias-Referenzen und Unterstützung für Funktionen im Assertion-Stil, beides einzigartige Typsystem-Features. Auf JavaScript-Seite brachte das Release optionales Chaining und Coalescing, zwei der am meisten geforderten Features für TypeScript- und JavaScript-Anwender gleichermaßen, für die sich unser Team (mehr Infos Team Schulungen) in TC39 eingesetzt hat.
In jüngerer Zeit brachten 3.8 und 3.9 Type-only-Importe/Exporte sowie ECMAScript-Features wie private Felder, Top-Level-Wait in Modulen und neue Export*-Syntaxen. Diese Versionen brachten auch Leistungs- und Skalierbarkeitsoptimierungen.
Wir haben noch nicht einmal all die Arbeit an unserem Sprachdienst, unserer Infrastruktur, unserer Website und anderen Kernprojekten erwähnt, die unglaublich wertvoll für die TypeScript-Erfahrung sind. Neben den Projekten des Kernteams gibt es eine unglaubliche Gemeinschaft von Mitwirkenden im Ökosystem, die die Erfahrung vorantreiben und bei DefinitelyTyped und sogar TypeScript selbst helfen. DefinitelyTyped hatte 2012, als es anfing, gerade einmal 80 Pull-Requests, die sich zum Ende des Jahres häuften. Im Jahr 2019 hatte es über 8300 Pull Requests, was uns immer noch verblüfft. Diese Beiträge sind grundlegend für die TypeScript-Erfahrung, daher sind wir dankbar für eine so lebhafte und eifrige Community, die das Ökosystem verbessert und uns dazu antreibt, uns ständig zu verbessern.
Was gibt es Neues?
Wenn Sie mit TypeScript nicht vertraut sind, ist es eine Sprache, die auf JavaScript (siehe auch JavaScript Seminar) aufbaut, indem sie eine Syntax für statische Typen hinzufügt. Die Idee dahinter ist, dass Sie die Typen Ihrer Werte und die Stellen, an denen sie verwendet werden, aufschreiben und TypeScript verwenden können, um Ihren Code zu überprüfen und Sie auf Fehler hinzuweisen, bevor Sie Ihren Code ausführen (und sogar bevor Sie Ihre Datei speichern). Sie können dann den TypeScript-Compiler verwenden, um Typen aus Ihrem Code zu entfernen, so dass Sie ein sauberes, lesbares JavaScript erhalten, das überall läuft. Über die Überprüfung hinaus verwendet TypeScript statische Typen auch, um gute Editor-Tools wie Autovervollständigung, Code-Navigation, Refactorings und mehr zu unterstützen. Wenn Sie JavaScript in einem Editor wie Visual Studio (siehe auch Visual Studio Training) Code oder Visual Studio verwendet haben, haben Sie bereits eine Erfahrung mit Typen und TypeScript gemacht.
Mit TypeScript 4.0 gibt es keine großen, bahnbrechenden Änderungen. Wenn Sie neu in der Sprache sind, ist jetzt der beste Zeitpunkt, um mit ihr zu beginnen. Die Community ist bereits da und wächst, mit funktionierendem Code und guten neuen Ressourcen zum Lernen. Und eines sollten Sie nicht vergessen: Trotz all der guten Dinge, die wir in 4.0 bringen, müssen Sie wirklich nur die Grundlagen von TypeScript kennen, um produktiv zu sein!
Wenn Sie TypeScript bereits in Ihrem Projekt verwenden, können Sie es entweder über NuGet beziehen oder npm verwenden:
TypeScript ist heute ein Kernbestandteil des JavaScript-Stacks vieler Leute. Auf npm wurde TypeScript im Juli zum ersten Mal über 50 Millionen Mal monatlich heruntergeladen! Und obwohl wir wissen, dass es immer Raum für Wachstum und Verbesserungen gibt, ist es klar, dass die meisten Leute, die in TypeScript programmieren, es wirklich genießen. In der jüngsten Entwicklerumfrage von StackOverflow steht TypeScript auf Platz 2 der beliebtesten Sprachen. In der jüngsten State of JS-Umfrage sagten rund 89 % der Entwickler, die TypeScript verwendet haben, dass sie es wieder verwenden würden.
Es lohnt sich, ein wenig zu erforschen, wie wir hierher gekommen sind. In den letzten beiden Hauptversionen haben wir auf einige Highlights zurückgeblickt, die über die Jahre hinweg glänzten. Für TypeScript 4.0 werden wir diese Tradition fortsetzen.
Wenn wir von 3.0 an zurückblicken, gibt es eine schwindelerregende Anzahl von Änderungen, aber TypeScript 3.0 selbst kam mit einem Schlag heraus. Die Vereinheitlichung von Tupel-Typen und Parameterlisten war ein großes Highlight und ermöglichte eine Menge bestehender JavaScript-Patterns für Funktionen. Außerdem wurden Projektreferenzen eingeführt, um die Skalierung, Organisation und gemeinsame Nutzung von Codebases zu erleichtern. Eine kleine Änderung, die große Auswirkungen hatte, war, dass 3.0 eine typsichere Alternative zu jedem called unknown einführte.
TypeScript 3.1 erweiterte die Fähigkeiten von gemappten Typen auf Tupel- und Array-Typen und erleichterte das Anhängen von Eigenschaften an Funktionen erheblich, ohne auf TypeScript-spezifische Laufzeitfunktionen zurückgreifen zu müssen, die nicht mehr verwendet werden.
TypeScript 3.2 erlaubte die Ausbreitung von Objekten auf generischen Typen und nutzte die Möglichkeiten von 3.0, um die Meta- Programmierung (siehe Programmierung Training) mit Funktionen durch strikte Typisierung von bind, call und apply besser zu modellieren. TypeScript 3.3 konzentrierte sich ein wenig auf die Stabilität nach 3.2, brachte aber auch Qualitätsverbesserungen bei der Verwendung von Union-Type- Methoden (mehr dazu Methoden Seminar) und fügte dateiinkrementelle Builds unter --build mode hinzu.
In der Version 3.4 wurde die Unterstützung funktionaler Muster weiter ausgebaut, mit besserer Unterstützung für unveränderliche Datenstrukturen und verbesserter Inferenz auf generische Funktionen höherer Ordnung. Als großes Plus wurde in dieser Version das Flag --incremental eingeführt, eine Möglichkeit, schnellere Kompilierungen und Typüberprüfungen zu erhalten, indem ein vollständiger Neuaufbau bei jedem Durchlauf von TypeScript ohne Projektreferenzen vermieden wird.
Mit TypeScript 3.5 und 3.6 wurden die Regeln für das Typsystem verschärft und die Kompatibilitätsprüfung verbessert.
TypeScript 3.7 war ein sehr bemerkenswertes Release, weil es eine reichhaltige Kombination aus neuen Typsystem-Features mit ECMAScript-Features bot. Auf der Seite des Typsystems gab es rekursive Typ-Alias-Referenzen und Unterstützung für Funktionen im Assertion-Stil, beides einzigartige Typsystem-Features. Auf JavaScript-Seite brachte das Release optionales Chaining und Coalescing, zwei der am meisten geforderten Features für TypeScript- und JavaScript-Anwender gleichermaßen, für die sich unser Team (mehr Infos Team Schulungen) in TC39 eingesetzt hat.
In jüngerer Zeit brachten 3.8 und 3.9 Type-only-Importe/Exporte sowie ECMAScript-Features wie private Felder, Top-Level-Wait in Modulen und neue Export*-Syntaxen. Diese Versionen brachten auch Leistungs- und Skalierbarkeitsoptimierungen.
Wir haben noch nicht einmal all die Arbeit an unserem Sprachdienst, unserer Infrastruktur, unserer Website und anderen Kernprojekten erwähnt, die unglaublich wertvoll für die TypeScript-Erfahrung sind. Neben den Projekten des Kernteams gibt es eine unglaubliche Gemeinschaft von Mitwirkenden im Ökosystem, die die Erfahrung vorantreiben und bei DefinitelyTyped und sogar TypeScript selbst helfen. DefinitelyTyped hatte 2012, als es anfing, gerade einmal 80 Pull-Requests, die sich zum Ende des Jahres häuften. Im Jahr 2019 hatte es über 8300 Pull Requests, was uns immer noch verblüfft. Diese Beiträge sind grundlegend für die TypeScript-Erfahrung, daher sind wir dankbar für eine so lebhafte und eifrige Community, die das Ökosystem verbessert und uns dazu antreibt, uns ständig zu verbessern.
Was gibt es Neues?
- Variadic Tuple Types
- Labeled Tuple Elements
- Class Property Inference from Constructors
- Short-Circuiting Assignment Operators
- unknown on catch Clauses
- Custom JSX Factories
- Speed Improvements in build mode with --noEmitOnError
- --incremental with --noEmit
- Editor Improvements