Was ist TypeScript und warum sollte ich es anstelle von JavaScript verwenden?[geschlossen]

StackOverflow https://stackoverflow.com//questions/12694530

  •  12-12-2019
  •  | 
  •  

Frage

Können Sie bitte beschreiben, was die Typoskriptsprache ist?

Was kann es tun, was JavaScript oder verfügbare Bibliotheken nicht können, das würde mir Anlass geben, darüber nachzudenken?

War es hilfreich?

Lösung

Ich habe diese Antwort ursprünglich geschrieben, als TypoSkript noch war druckfrisch.Fünf Jahre später ist dies ein guter Überblick, aber schauen Sie an Lodewijks Antwort unten für mehr Tiefe

1000ft Ansicht...

TypoSkript ist eine Obermenge von JavaScript, die hauptsächlich optionale statische Typisierung, Klassen und Schnittstellen bereitstellt.Einer der großen Vorteile besteht darin, dass IDEs eine reichhaltigere Umgebung zum Erkennen häufiger Fehler bereitstellen können während Sie den Code eingeben.

Um eine Vorstellung davon zu bekommen, was ich meine, schau dir an Einführungsvideo von Microsoft auf die Sprache.

Bei einem großen JavaScript-Projekt kann die Verwendung von TypeScript zu einer robusteren Software führen, die jedoch weiterhin dort bereitgestellt werden kann, wo eine reguläre JavaScript-Anwendung ausgeführt würde.

Es ist Open Source, aber Sie erhalten den cleveren Intellisense nur während der Eingabe, wenn Sie eine unterstützte IDE verwenden.Anfangs war dies nur Microsofts Visual Studio (auch im Blogbeitrag von erwähnt Miguel de Icaza).Heutzutage, andere IDEs bieten auch TypeScript-Unterstützung.

Gibt es andere Technologien wie diese?

Es gibt KaffeeSkript, aber das dient wirklich einem anderen Zweck.IMHO bietet CoffeeScript Lesbarkeit für Menschen, aber TypeScript bietet auch tiefe Lesbarkeit für Tools durch seine optionale statische Typisierung (siehe dies letzter Blogbeitrag für ein bisschen mehr Kritik).Es gibt auch Dart aber das ist ein vollständiger Ersatz für JavaScript (obwohl es kann JavaScript-Code erzeugen)

Beispiel

Als Beispiel hier ein Typoskript (Sie können damit in der spielen TypoSkript-Spielplatz)

class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}  

Und hier ist das JavaScript, das es erzeugen würde

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

Beachten Sie, wie das TypeScript den Typ von Membervariablen und Klassenmethodenparametern definiert.Dies wird bei der Übersetzung in JavaScript entfernt, aber von der IDE und dem Compiler verwendet, um Fehler zu erkennen, z. B. die Übergabe eines numerischen Typs an den Konstruktor.

Es ist auch in der Lage, Typen abzuleiten, die nicht explizit deklariert sind, zum Beispiel würde es die bestimmen greet() methode gibt eine Zeichenfolge zurück.

Debuggen von TypeScript

Viele Browser und IDEs bieten direkte Debugging-Unterstützung über Quellkarten.Weitere Informationen finden Sie in dieser Frage zum Stapelüberlauf: Debuggen von TypeScript-Code mit Visual Studio

Wollen Sie mehr wissen?

Ich habe diese Antwort ursprünglich geschrieben, als TypoSkript noch druckfrisch war.Auschecken Lodewijks Antwort zu dieser Frage für einige aktuellere Details.

Andere Tipps

Beziehung von TypeScript zu JavaScript

TypeScript ist eine typisierte Obermenge von JavaScript, die in Plain kompiliert wird JavaScript - typescriptlang.org.

JavaScript ist eine Programmiersprache, die von entwickelt wurde Technischer Ausschuss der EMCA 39, Das ist eine Gruppe von Menschen, die sich aus vielen verschiedenen Interessengruppen zusammensetzt.TC39 ist ein Komitee, das von gehostet wird ECMA:eine interne Normungsorganisation.JavaScript hat viele verschiedene Implementierungen von vielen verschiedenen Anbietern (z.Google, Microsoft, Orakel usw.).Das Ziel von JavaScript ist es, die Lingua Franca des Webs zu sein.

TypeScript ist eine Obermenge der JavaScript-Sprache, die einen einzigen Open-Source-Compiler hat und hauptsächlich von einem einzigen Anbieter entwickelt wird:Microsoft.Das Ziel von TypeScript ist es, Fehler durch ein Typensystem frühzeitig zu erkennen und die JavaScript-Entwicklung effizienter zu gestalten.

Im Wesentlichen erreicht TypeScript seine Ziele auf drei Arten:

  1. Unterstützung für moderne JavaScript-Funktionen - Die JavaScript-Sprache (nicht die Laufzeit) wird durch die standardisiert ECMAScript Normen.Nicht alle Browser und JavaScript-Laufzeiten unterstützen alle Funktionen aller ECMAScript-Standards (siehe dazu Überblick).TypeScript ermöglicht die Verwendung vieler der neuesten ECMAScript-Funktionen und übersetzt sie in ältere ECMAScript-Ziele Ihrer Wahl (siehe Liste der ziele kompilieren unter dem --target Compileroption).Dies bedeutet, dass Sie neue Funktionen wie Module, Lambda-Funktionen, Klassen, den Spread-Operator und die Destrukturierung sicher verwenden können und gleichzeitig abwärtskompatibel mit älteren Browsern und JavaScript-Laufzeiten bleiben.

  2. Fortschrittliches Typensystem - Die Typunterstützung ist nicht Teil des ECMAScript-Standards und wird wahrscheinlich niemals auf die interpretierte Natur anstelle der kompilierten Natur von JavaScript zurückzuführen sein.Das Typensystem von TypeScript ist unglaublich umfangreich und umfasst:schnittstellen, Aufzählungen, Hybridtypen, Generika, Vereinigungs- / Schnittstellentypen, Zugriffsmodifizierer und vieles mehr.Der offizielle Webseite von TypeScript gibt einen Überblick über diese Funktionen.Das Typensystem von Typescript ist mit den meisten anderen typisierten Sprachen vergleichbar und in einigen Fällen wohl leistungsfähiger.

  3. Unterstützung für Entwickler-Tools - Der Compiler von TypeScript kann als Hintergrundprozess ausgeführt werden, um sowohl die inkrementelle Kompilierung als auch die IDE-Integration zu unterstützen, sodass Sie einfacher navigieren, Probleme identifizieren, Möglichkeiten prüfen und Ihre Codebasis umgestalten können.

Beziehung von TypeScript zu anderen JavaScript-Targeting-Sprachen

TypeScript hat eine einzigartige Philosophie im Vergleich zu anderen Sprachen, die zu JavaScript kompilieren.JavaScript-Code ist gültiger TypeScript-Code;TypeScript ist eine Obermenge von JavaScript.Sie können Ihre fast umbenennen .js dateien zu .ts dateien und beginnen Sie mit der Verwendung von TypeScript (siehe "JavaScript-Interoperabilität" unten).TypeScript-Dateien werden zu lesbarem JavaScript kompiliert, so dass eine Migration zurück möglich ist und das Verständnis des kompilierten TypeScript überhaupt nicht schwierig ist.TypeScript baut auf den Erfolgen von JavaScript auf und verbessert gleichzeitig seine Schwächen.

Einerseits haben Sie zukunftssichere Tools, die moderne ECMAScript-Standards übernehmen und auf ältere JavaScript-Versionen kompilieren, wobei Babel die beliebteste ist.Auf der anderen Seite haben Sie Sprachen, die sich völlig von JavaScript unterscheiden können, die auf JavaScript abzielen, wie CoffeeScript, Clojure, Dart, Elm, Haxe, Scala.js und eine ganze Reihe mehr (siehe dazu Liste).Diese Sprachen, obwohl sie besser sein könnten als die Zukunft von JavaScript, laufen Gefahr, nicht genügend Akzeptanz zu finden, um ihre Zukunft zu garantieren.Möglicherweise haben Sie auch größere Probleme, erfahrene Entwickler für einige dieser Sprachen zu finden, obwohl die, die Sie finden, oft enthusiastischer sind.Interoperabilität mit JavaScript kann auch etwas komplizierter sein, da sie weiter von dem entfernt sind, was JavaScript tatsächlich ist.

TypeScript befindet sich zwischen diesen beiden Extremen und gleicht so das Risiko aus.TypeScript ist in keiner Hinsicht eine riskante Wahl.Es ist sehr gewöhnungsbedürftig, wenn Sie mit JavaScript vertraut sind, da es keine völlig andere Sprache ist, eine ausgezeichnete JavaScript-Interoperabilitätsunterstützung bietet und in letzter Zeit viel Akzeptanz gefunden hat.

Optional statische Typisierung und Typinferenz

JavaScript ist dynamisch typisiert.Dies bedeutet, dass JavaScript nicht weiß, welcher Typ eine Variable ist, bis sie zur Laufzeit tatsächlich instanziiert wird.Dies bedeutet auch, dass es möglicherweise zu spät ist.TypeScript fügt JavaScript Typunterstützung hinzu.Fehler, die durch falsche Annahmen verursacht werden, dass eine Variable von einem bestimmten Typ ist, können vollständig beseitigt werden, wenn Sie Ihre Karten richtig ausspielen (wie streng Sie Ihren Code eingeben oder ob Sie Ihren Code überhaupt eingeben, liegt bei Ihnen).

TypeScript macht das Tippen durch die Verwendung von Typinferenz etwas einfacher und viel weniger explizit.Beispielsweise: var x = "hello" in TypoSkript ist das gleiche wie var x : string = "hello".Der Typ wird einfach aus seiner Verwendung abgeleitet.Auch wenn Sie die Typen nicht explizit eingeben, sind sie immer noch da, um Sie davor zu bewahren, etwas zu tun, was sonst zu einem Laufzeitfehler führen würde.

TypeScript wird standardmäßig optional eingegeben.Beispielsweise function divideByTwo(x) { return x / 2 } ist eine gültige Funktion in TypeScript, die aufgerufen werden kann mit jeder eine Art Parameter, auch wenn der Aufruf mit einer Zeichenfolge offensichtlich zu einem führt Laufzeit Fehlermeldung.Genau wie Sie es von JavaScript gewohnt sind.Dies funktioniert, denn wenn kein Typ explizit zugewiesen wurde und der Typ nicht abgeleitet werden konnte, wie im Beispiel von divideByTwo, weist TypeScript den Typ implizit zu any.Dies bedeutet, dass die Typensignatur der divideByTwo-Funktion automatisch wird function divideByTwo(x : any) : any.Es gibt ein Compiler-Flag, um dieses Verhalten zu verbieten: --noImplicitAny.Das Aktivieren dieses Flags gibt Ihnen ein höheres Maß an Sicherheit, bedeutet aber auch, dass Sie mehr tippen müssen.

Typen sind mit Kosten verbunden.Erstens gibt es eine Lernkurve, und zweitens kostet es Sie natürlich etwas mehr Zeit, eine Codebasis mit korrekter strikter Typisierung einzurichten.Meiner Erfahrung nach sind diese Kosten für jede ernsthafte Codebasis, die Sie mit anderen teilen, absolut lohnenswert. Eine groß angelegte Studie über Programmiersprachen und Codequalität in Github schlägt vor, dass "statisch typisierte Sprachen sind im Allgemeinen weniger fehleranfällig als die dynamischen Typen, und diese starke Typisierung ist in gleicher Hinsicht besser als schwache Typisierung".

Es ist interessant festzustellen, dass genau dieses Papier feststellt, dass TypeScript weniger fehleranfällig ist als JavaScript:

Für diejenigen mit positiven Koeffizienten können wir erwarten, dass die Sprache ist ceteris paribus mit einer größeren Anzahl von Fehlerbehebungen verbunden.Diese Sprachen umfassen C, C ++, JavaScript, Objective-C, PHP und Pythonschlange.Die Sprachen Clojure, Haskell, Ruby, Scala und TypoSkript, alle haben negative Koeffizienten, was bedeutet, dass diese Sprachen weniger sind wahrscheinlich als der Durchschnitt, um zu Fehlerbehebungs-Commits zu führen.

Erweiterte IDE-Unterstützung

Die Entwicklungserfahrung mit TypeScript ist eine große Verbesserung gegenüber JavaScript.Die IDE wird in Echtzeit vom TypeScript-Compiler über ihre umfangreichen Typinformationen informiert.Dies bietet einige wichtige Vorteile.Mit TypeScript können Sie beispielsweise Refactorings wie Umbenennungen in Ihrer gesamten Codebasis sicher durchführen.Durch Code-Vervollständigung können Sie Inline-Hilfe zu allen Funktionen erhalten, die eine Bibliothek bieten könnte.Sie müssen sich diese nicht mehr merken oder in Online-Referenzen nachschlagen.Kompilierungsfehler werden direkt in der IDE mit einer roten schnörkellosen Linie gemeldet, während Sie mit dem Codieren beschäftigt sind.Alles in allem ermöglicht dies einen deutlichen Produktivitätsgewinn im Vergleich zur Arbeit mit JavaScript.Man kann mehr Zeit mit Codierung und weniger Zeit mit Debuggen verbringen.

Es gibt eine Vielzahl von IDEs, die TypeScript hervorragend unterstützen, wie Visual Studio Code, WebStorm, Atom und Sublime.

Strenge Nullprüfungen

Laufzeitfehler des Formulars cannot read property 'x' of undefined oder undefined is not a function werden sehr häufig durch Fehler im JavaScript-Code verursacht.Standardmäßig verringert TypeScript bereits die Wahrscheinlichkeit, dass solche Fehler auftreten, da keine Variable verwendet werden kann, die dem TypeScript-Compiler nicht bekannt ist (mit Ausnahme der Eigenschaften von any typisierte Variablen).Es ist jedoch immer noch möglich, fälschlicherweise eine Variable zu verwenden, die auf gesetzt ist undefined.Mit der Version 2.0 von TypeScript können Sie diese Art von Fehlern jedoch alle zusammen durch die Verwendung von nicht nullbaren Typen beseitigen.Dies funktioniert wie folgt:

Mit aktivierten strengen Nullprüfungen (--strictNullChecks compiler-Flag) erlaubt der TypeScript-Compiler nicht undefined einer Variablen zugewiesen werden, es sei denn, Sie deklarieren sie explizit als nullfähigen Typ.Beispielsweise, let x : number = undefined führt zu einem Kompilierungsfehler.Dies passt perfekt zur Typentheorie, da undefined ist keine Nummer.Man kann definieren x ein Summentyp von sein number und undefined um dies zu korrigieren: let x : number | undefined = undefined.

Sobald bekannt ist, dass ein Typ nullfähig ist, bedeutet dies, dass er von einem Typ ist, der auch den Wert haben kann null oder undefined, kann der TypeScript-Compiler durch kontrollflussbasierte Typanalyse feststellen, ob Ihr Code eine Variable sicher verwenden kann oder nicht.Mit anderen Worten, wenn Sie eine Variable überprüfen, ist undefined zum Beispiel durch eine if -anweisung Der TypeScript-Compiler schließt daraus, dass der Typ in diesem Zweig des Kontrollflusses Ihres Codes nicht mehr nullfähig ist und daher sicher verwendet werden kann.Hier ist ein einfaches Beispiel:

let x: number | undefined;
if (x !== undefined) x += 1; // this line will compile, because x is checked.
x += 1; // this line will fail compilation, because x might be undefined.

Während der Build-Konferenz 2016 gab Co-Designer von TypeScript Anders Hejlsberg eine detaillierte Erklärung und Demonstration dieser Funktion: Video (von 44:30 bis 56:30 Uhr).

Zusammenstellung

Um TypeScript verwenden zu können, benötigen Sie einen Build-Prozess, um JavaScript-Code zu kompilieren.Der Erstellungsprozess dauert in der Regel nur wenige Sekunden, abhängig natürlich von der Größe Ihres Projekts.Der TypeScript-Compiler unterstützt die inkrementelle Kompilierung (--watch compiler-Flag), damit alle nachfolgenden Änderungen schneller kompiliert werden können.

Der TypeScript-Compiler kann Quellzuordnungsinformationen in das generierte Inline einfügen.js-Dateien oder separate erstellen.Zuordnungsdatei.Quellkarteninformationen können von Debugging-Dienstprogrammen wie den Chrome DevTools und anderen IDEs verwendet werden, um die Zeilen im JavaScript mit denen in Beziehung zu setzen, die sie im TypeScript generiert haben.Dies ermöglicht es Ihnen, Haltepunkte zu setzen und Variablen zur Laufzeit direkt in Ihrem TypeScript-Code zu überprüfen.Quellkarteninformationen funktionieren ziemlich gut, es gab sie schon lange vor TypeScript, aber das Debuggen von TypeScript ist im Allgemeinen nicht so gut wie bei der direkten Verwendung von JavaScript.Nehmen Sie die this stichwort zum Beispiel.Aufgrund der veränderten Semantik der this stichwort rund um Schließungen seit ES2015, this kann zur Laufzeit tatsächlich als Variable namens existieren _this (sehen diese Antwort).Dies kann Sie beim Debuggen verwirren, ist aber im Allgemeinen kein Problem, wenn Sie davon wissen oder den JavaScript-Code überprüfen.Es sollte beachtet werden, dass Babel genau die gleiche Art von Problem hat.

Es gibt ein paar andere Tricks, die der TypeScript-Compiler ausführen kann, z. B. das Generieren von abfangendem Code basierend auf Dekoratore, Generieren von Modulladecode für verschiedene Modulsysteme und Parsen JSX.Neben dem Typescript-Compiler benötigen Sie jedoch wahrscheinlich ein Build-Tool.Wenn Sie beispielsweise Ihren Code komprimieren möchten, müssen Sie Ihrem Erstellungsprozess dazu andere Tools hinzufügen.

Es gibt TypoSkript-Kompilierungs-Plugins für Webpacks, Schluck, Grunzer und so ziemlich jedes andere JavaScript-Build-Tool da draußen.Die TypeScript-Dokumentation enthält einen Abschnitt über integration mit Build-Tools bedecke sie alle.A linters ist auch verfügbar, falls Sie noch mehr Bauzeit überprüfen möchten.Es gibt auch eine große Anzahl von Seed-Projekten, mit denen Sie mit TypeScript in Kombination mit einer Reihe anderer Technologien wie Angular 2, React, Ember, SystemJS, Webpack, Gulp usw. beginnen können.

JavaScript-Interoperabilität

Da TypeScript so eng mit JavaScript verwandt ist, verfügt es über hervorragende Interoperabilitätsfunktionen, es ist jedoch einige zusätzliche Arbeit erforderlich, um mit JavaScript-Bibliotheken in TypeScript zu arbeiten. TypoSkript-Definitionen werden benötigt, damit der TypeScript-Compiler versteht, dass Funktionsaufrufe wie _.groupBy oder angular.copy oder $.fadeOut sind in der Tat keine illegalen Aussagen.Die Definitionen für diese Funktionen befinden sich in .d.ts Datei.

Die einfachste Form, die eine Definition annehmen kann, besteht darin, die Verwendung eines Bezeichners in beliebiger Weise zuzulassen.Zum Beispiel bei der Verwendung von Lodash, eine einzeilige Definitionsdatei declare var _ : any ermöglicht es Ihnen, jede gewünschte Funktion aufzurufen _, aber dann sind Sie natürlich auch noch in der Lage, Fehler zu machen: _.foobar() wäre ein legaler TypoSkript-Aufruf, ist aber zur Laufzeit natürlich ein illegaler Aufruf.Wenn Sie eine ordnungsgemäße Typunterstützung und Codevervollständigung wünschen, muss Ihre Definitionsdatei genauer sein (siehe Lodash Definitionen für ein Beispiel).

Npm-Module die mit eigenen Typdefinitionen vorverpackt sind, werden vom TypeScript-Compiler automatisch verstanden (siehe Dokumentation).Für so ziemlich jede andere halb populäre JavaScript-Bibliothek, die keine eigenen Definitionen enthält, hat jemand da draußen bereits Typdefinitionen über ein anderes npm-Modul verfügbar gemacht.Diese Module haben das Präfix "@types /" und stammen aus einem Github-Repository namens Definitiv typisiert.

Es gibt eine Einschränkung:die Typdefinitionen müssen mit der Version der Bibliothek übereinstimmen, die Sie zur Laufzeit verwenden.Wenn dies nicht der Fall ist, verbietet TypeScript Ihnen möglicherweise den Aufruf einer Funktion oder die Dereferenzierung einer vorhandenen Variablen oder den Aufruf einer Funktion oder die Dereferenzierung einer nicht vorhandenen Variablen, einfach weil die Typen zur Kompilierungszeit nicht mit der Laufzeit übereinstimmen.Stellen Sie also sicher, dass Sie die richtige Version der Typdefinitionen für die richtige Version der von Ihnen verwendeten Bibliothek laden.

Um ehrlich zu sein, gibt es einen kleinen Ärger damit und es kann einer der Gründe sein, warum Sie sich nicht für TypeScript entscheiden, sondern sich für etwas wie Babel entscheiden, das überhaupt nicht darunter leidet, Typdefinitionen zu erhalten.Auf der anderen Seite, wenn Sie wissen, was Sie tun, können Sie leicht jede Art von Problemen überwinden, die durch falsche oder fehlende Definitionsdateien verursacht werden.

Konvertierung von JavaScript nach TypeScript

Jeder .js datei kann in eine umbenannt werden .ts datei und durchlief den TypeScript-Compiler, um syntaktisch den gleichen JavaScript-Code wie eine Ausgabe zu erhalten (wenn er überhaupt syntaktisch korrekt war).Selbst wenn der TypeScript-Compiler Kompilierungsfehler erhält, wird er immer noch eine erzeugen .js Datei.Es kann sogar akzeptieren .js dateien als Eingabe mit dem --allowJs Flagge.Auf diese Weise können Sie sofort mit TypeScript beginnen.Leider treten am Anfang wahrscheinlich Kompilierungsfehler auf.Man muss sich daran erinnern, dass dies keine auffälligen Fehler sind, wie Sie es von anderen Compilern gewohnt sind.

Die Kompilierungsfehler, die zu Beginn beim Konvertieren eines JavaScript-Projekts in ein TypeScript-Projekt auftreten, sind von Natur aus unvermeidbar.TypoSkript-Prüfungen aller code für die Gültigkeit und daher muss er über alle Funktionen und Variablen Bescheid wissen, die verwendet werden.Daher müssen Typdefinitionen für alle vorhanden sein, da sonst zwangsläufig Kompilierungsfehler auftreten.Wie im obigen Kapitel erwähnt, gibt es für so ziemlich jedes JavaScript-Framework .d.ts dateien, die einfach mit der Installation von erworben werden können Definitiv typisierte Pakete.Es kann jedoch sein, dass Sie eine obskure Bibliothek verwendet haben, für die keine Typoskriptdefinitionen verfügbar sind, oder dass Sie einige JavaScript-Grundelemente mehrfach ausgefüllt haben.In diesem Fall müssen Sie Typdefinitionen für diese Bits angeben, damit die Kompilierungsfehler verschwinden.Erstellen Sie einfach eine .d.ts datei und fügen Sie es in die tsconfig ein.json's files array, so dass es immer vom TypeScript-Compiler berücksichtigt wird.Deklarieren Sie darin die Bits, von denen TypeScript nichts weiß, als Typ any.Sobald Sie alle Fehler beseitigt haben, können Sie nach und nach die Eingabe dieser Teile nach Ihren Bedürfnissen einführen.

Einige Arbeiten an der (Neu-) Konfiguration Ihrer Build-Pipeline sind auch erforderlich, um TypeScript in die Build-Pipeline aufzunehmen.Wie im Kapitel über Kompilierung erwähnt, gibt es viele gute Ressourcen und ich ermutige Sie, nach Seed-Projekten zu suchen, die die Kombination von Tools verwenden, mit denen Sie arbeiten möchten.

Die größte Hürde ist die Lernkurve.Ich ermutige Sie, zunächst mit einem kleinen Projekt herumzuspielen.Sehen Sie, wie es funktioniert, wie es erstellt wird, welche Dateien es verwendet, wie es konfiguriert ist, wie es in Ihrer IDE funktioniert, wie es strukturiert ist, welche Tools es verwendet usw.Das Konvertieren einer großen JavaScript-Codebasis in TypeScript ist möglich, wenn Sie wissen, was Sie tun.Lesen Sie diesen Blog zum Beispiel auf konvertieren von 600 kb Zeilen in Typoskript in 72 Stunden).Stellen Sie einfach sicher, dass Sie die Sprache gut verstehen, bevor Sie den Sprung machen.

Annahme

TypeScript ist Open Source (Apache 2 lizenziert, siehe GitHub) und von Microsoft unterstützt. Anders Hejlsberg, der leitende Architekt von C # leitet das Projekt.Es ist ein sehr aktives Projekt;das TypeScript-Team hat in den letzten Jahren viele neue Funktionen veröffentlicht und viele großartige sind noch in Planung (siehe die Fahrplan).

Einige Fakten über Adoption und Popularität:

  • In der StackOverflow-Entwicklerumfrage 2017 TypeScript war der beliebteste JavaScript-Transpiler (9. Platz insgesamt) und belegte den dritten Platz in der Kategorie beliebteste Programmiersprache.
  • In der Umfrage zum Stand der js 2018 TypeScript wurde zu einem der beiden großen Gewinner in der Kategorie JavaScript Flavours erklärt (wobei ES6 der andere ist).
  • In der 2019 StackOverlow Entwickler-Umfrage TypeScript stieg auf den 9. Platz der beliebtesten Sprachen unter professionellen Entwicklern und überholte sowohl C als auch C ++.Es belegte erneut den dritten Platz unter den beliebtesten Sprachen.

TypeScript macht etwas Ähnliches wie Less oder sass für CSS.Sie sind Supersätze davon, was bedeutet, dass jeder von Ihnen geschriebene JS-Code gültiger TypoSkript-Code ist.Außerdem können Sie die anderen Extras verwenden, die der Sprache hinzugefügt werden, und der transpilierte Code ist gültiger js.Sie können sogar die JS-Version festlegen, für die Ihr resultierender Code verwendet werden soll.

Derzeit ist TypeScript ein Supersatz von ES2015, daher ist es möglicherweise eine gute Wahl, um die neuen js-Funktionen zu erlernen und auf den für Ihr Projekt erforderlichen Standard zu übertragen.

"Grundlagen von TypeScript" -- ein Pluralsight-Videokurs von Dan Wahlin und John Papa ist eine wirklich gute, derzeit (25. März 2016) aktualisierte Version von TypeScript 1.8, Einführung in Typescript.

Für mich sind die wirklich guten Eigenschaften, neben den schönen Möglichkeiten für Intellisense, die Klasse, Schnittstelle, Funktionsbausteine, die einfache Implementierung von AMD und die Möglichkeit, den Visual Studio Typescript-Debugger zu verwenden, wenn er mit IE aufgerufen wird.

Zusammenfassen:Bei bestimmungsgemäßer Verwendung kann Typescript die JavaScript-Programmierung zuverlässiger und einfacher machen.Es kann die Produktivität des JavaScript-Programmierers über den gesamten SDLC erheblich steigern.

Ecma-Skript 5 (ES5), das alle Browser unterstützen und vorkompiliert sind.ES6 / ES2015 und ES / 2016 kamen dieses Jahr mit vielen Änderungen, also um diese Änderungen aufzuzeigen, gibt es etwas dazwischen, das sich um so TypoSkript kümmern sollte.

• TypeScript ist Types -> Bedeutet, dass wir den Datentyp jeder Eigenschaft und Methode definieren müssen.Wenn Sie C # kennen, ist Typescript leicht zu verstehen.

• Ein großer Vorteil von TypoSkript ist, dass wir Probleme im Zusammenhang mit Identitätstypen frühzeitig vor der Produktion erkennen.Dies ermöglicht, dass Komponententests fehlschlagen, wenn eine Typenkonflikt vorliegt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top