TypeScript-Unterstützung in modernen Browsern

Lesezeit: 7 Minuten

Benutzer-Avatar
Artjom Kharytoniuk

Ich habe gerade einige Werbeinformationen zu TypeScript gelesen und außerdem habe ich keine Erfahrung mit dieser Obermenge von JavaScript. Daher habe ich einige grundsätzliche Fragen:

  1. Wie ist der Status der nativen TypeScript-Unterstützung durch die modernen Browser?

  2. Was sind die Positionen der großen Browser-Anbieter für die zukünftige native Unterstützung von TypeScript?

  3. Was ist die Beziehung zwischen TypeScript und ECMAScript 6 und bietet TypeScript viel mehr Funktionen als ECMAScript 6?

  • Vielleicht könnte die Frage etwas vereinfacht werden, obwohl es immer noch klar ist, dass das Kernproblem darin besteht, dass eine einfache Google-Suche (im Moment) keine einzelne Seite mit einer Liste von Browsern zurückgibt, die welche Versionen von Typescript unterstützen nativ

    – Quarz

    24. April 2017 um 20:51 Uhr

  • Der Grund, warum diese Frage geschlossen wurde, ergibt überhaupt keinen Sinn. Es ist eine vollkommen gültige Frage, die jedem helfen würde, der versucht, Typoskript zu lernen. Für Anfänger ist es immer verwirrend und im Allgemeinen ein Missverständnis, dass TypeScript im Browser ausgewertet und ausgeführt wird, da es als Superskript von Javascript erwähnt wird. Nun, es ist in einem anderen Sinne, also helfen einige dieser Fragen dabei, die Details dieser Bausteine ​​zu beleuchten

    – Emmanuel Ponnudurai

    10. Juni 2018 um 6:15 Uhr

  • Dies ist eine ausgezeichnete Frage, auf die die Leute anscheinend noch keine Antwort haben. Ich würde mir eine Zukunft vorstellen, in der alle gängigen Browser den neuesten RFC-Standard-TypeScript im Handumdrehen direkt in Web-Assembly-Bytecode sowohl auf Webseiten als auch in der Konsole kompilieren. Bis dahin hoffe ich persönlich wirklich, keine Zeit und keine Tränen mit TypeScript-Werkzeugen zu verbringen.

    – Schawais

    18. Mai 2019 um 16:10 Uhr


Benutzer-Avatar
Basarat

Native Unterstützung

Native Unterstützung kann ganz einfach hinzugefügt werden, z https://github.com/basarat/typescript-script fügt Unterstützung für Skript-Tags hinzu (obwohl dies einer Seite 6 MB zur Unterstützung von JavaScript hinzufügt). Beim Kompilieren von TypeScript zu JavaScript gibt es jedoch einen Leistungseinbruch, und für die beste Leistung ist es am besten, das kompilierte JavaScript in den Browsern vorzukompilieren und auszuführen.

Browseranbieter haben keine Pläne, native TypeScript-Unterstützung hinzuzufügen. Die einzigen nativen Sprachen, die Browsern gemeinsam sind, sind JavaScript und WebAssembly. TypeScript kann in beide transpiliert und in den Browsern ausgeführt werden, sodass es kein Blocker ist.

Nicht-native Unterstützung

Wie ist der Status der TypeScript-Unterstützung durch die modernen Browser?

TypeScript wird in JavaScript kompiliert, daher wird es von allen Browsern unterstützt (sogar InternetExplorer 6).

Welche Positionen vertreten die großen Browseranbieter zur zukünftigen Unterstützung von TypeScript?

Seitens der Browseranbieter ist keine Arbeit erforderlich.

Welche Beziehung besteht zwischen TypeScript und ECMAScript6 und bietet TypeScript viel mehr Funktionen als ECMAScript6?

Ja, zB ab zukünftigen JavaScript-Versionen, zB Klassenfelder und statische Eigenschaften in Klassen.

  • Das ist eindeutig nicht das, was Artem meinte. Die Unterstützung von TypeScript im Browser bedeutet, dass Sie TypeScript direkt auf den Seiten verwenden können, die der Browser lädt.

    – Ondra Žižka

    21. März 2016 um 21:48 Uhr

  • Ziemlich. Keine Ahnung, wofür die Stack-Nerdlords diese Frage geschlossen haben, es ist völlig offensichtlich, was das OP fragt, und diese Antwort liefert nicht die Antwort.

    – Neutrino

    28. November 2016 um 16:56 Uhr

  • Die Frage war “Wie ist der Status der Unterstützung für NATIVE TypeScript durch die modernen Browser?”

    – orszaczky

    7. April 2017 um 22:35 Uhr

  • NATIVE wurde hinzugefügt, nachdem ich geantwortet hatte. Und wurde von jemandem hinzugefügt, der es ist nicht die Operation: imgur.com/a/haFrB

    – Basarat

    22. November 2017 um 22:59 Uhr

  • “TypeScript sollte nicht nativ ausgeführt werden” Warum nicht? “Typescript wird in JS kompiliert, sodass es von allen Browsern unterstützt wird” Das beantwortet die Frage nicht.

    – Charlie

    26. April 2018 um 23:54 Uhr

Benutzer-Avatar
Matthew

Der Versuch, einen Webbrowser zu entwerfen, der nativ mehr als eine Sprache gleichzeitig unterstützen kann, ist genau das, was Google versucht hat Pfeil. Es war eine Dart-Engine für Chrome geplant, aber das war eine zu große Aufgabe mit sehr wenig Nutzen, abgesehen davon, dass „einfach kein JavaScript verwendet wird“.

Ich vermute, dass die native Unterstützung von TypeScript eine ebenso entmutigende Aufgabe wäre. Wahrscheinlich ist es besser, ECMAScript einfach zu verbessern und ein paar TypeScript-Ideen hinzuzufügen, wo sie sinnvoll sind. Ich liebe TypeScript aber.

  • Ich glaube nicht, dass es das wäre gleichermaßen entmutigend. Es scheint, als könnte TS-Unterstützung erreicht werden, indem der vorhandene JS-Parser hinzugefügt wird, um die Sprache zu analysieren, dann einfach die TS-spezifische Syntax zu entfernen und den resultierenden Code auf V8 auszuführen, was möglich ist, da TS eine Obermenge von JS ist. Dart ist eine völlig andere Sprache, die einen eigenen AST und eine eigene VM erfordert.

    – Brandon

    21. Oktober 2020 um 15:16 Uhr


  • @brandon-duffany, Es ist nicht möglich, TypeScript-Code auf einfaches JavaScript zu “entfernen”. Sie benötigen einen tatsächlichen vollwertigen TS-Compiler, um alle TS-Funktionen wie Generics, Union Types, Intersection Types usw. in äquivalenten JS-Code zu konvertieren. leider lassen sie sich nicht einfach “ausziehen”. Es ist wahr, dass TS eine Obermenge von JS ist, was bedeutet, dass jedes gültige JS TS ist, aber das bedeutet nicht unbedingt, dass TS einfach wieder in JS konvertiert werden kann, indem Typanmerkungen und ähnliches gelöscht werden.

    – Seride

    21. Februar 2021 um 1:49 Uhr


  • Ich meine nicht, dass es irgendeine Art von Laufzeittypprüfung implementieren muss. Schließlich wird TS auch zur Laufzeit nicht typgeprüft. Zum Beispiel, wenn der Browser sieht type Foo = string | int, könnte es einfach sagen “Oh, das ist eine Typdeklaration. Lassen Sie es uns ignorieren.”. Dann, wenn es sieht let foo: Foo = 1es könnte wählen, die zu ignorieren : Foo Teil. Perfekt gültiges JS. Es unterscheidet sich stark von Dart, da Dart tatsächlich zur Laufzeit typgeprüft wird.

    – Brandon

    23. Februar 2021 um 1:46 Uhr


Benutzer-Avatar
Nithisch peddi

TypeScript kann in keinem Browser ausgeführt oder verstanden werden. TypeScript wird also zu JavaScript kompiliert (das Browser verstehen können). TypeScript kann alle verwenden ECMAScript 2015 Funktionen und während der Kompilierung werden sie umgewandelt Ziel kompilieren Sie Optionen wie ES5.

Benutzer-Avatar
Daniel Danielecki

Derzeit wird es nicht funktionieren, aber es ist trotzdem ein interessantes Thema. Es wäre gut zu wissen, ob ECMAScript irgendwann Schnittstellen, Typen und andere Dinge unterstützen wird. Besonders fällt mir auf, dass ECMAScript tatsächlich langsam einige Teile aus dem TypeScript übernimmt, zB Enums.

Wenn es funktionieren würde, würde ich es eher als ECMAScript sehen, das etwas von TypeScript übernimmt, anstatt TypeScript selbst nativ zu unterstützen.

Benutzer-Avatar
evgeni tsvetanov

Ich weiß, dass es derzeit nicht unterstützt wird, und es gibt keine Pläne, TypeScript nativ im Browser zu unterstützen, aber es gibt (meiner Meinung nach) ein großes Problem mit den Tools im Frontend-Ökosystem (JavaScript) – es gibt zu viel davon. Bündelung, Modulauflösung, transpilierenund mehr.

Ich denke, es macht die Entwicklung viel langsamer, weil es viele Probleme mit Konfigurationen, Versionskonflikten, Kompatibilität und vielen obskuren Problemen gibt (Stack Overflow und GitHub sind voll von solchen Themen), die von den Tools herrühren, nicht von der Implementierung von Funktionen.

Ich würde es eine Krise nennen, aber es ist schon eine Weile so und ich weiß, dass dies jetzt der Weg ist, die Dinge zu tun.

Ich denke, es gibt ein paar Dinge, die passieren müssen.

  1. Wir müssen in der Lage sein, nativ zu verwenden ES6 Module (Import/Export) im Browser. Ich weiß, dass es unterstützt wird, aber nur relative oder URL-Importe funktionieren. Ich weiß, dass an “Karten importieren” oder wie auch immer sie heißen, gearbeitet wird.

  2. Es wäre toll, wenn Browser (Chrome) TypeScript-Code lesen könnten. Es muss keine Eingaben interpretieren oder erzwingen – behandelt es im Wesentlichen wie JavaScript mit zusätzlichem Unsinn, den der Browser einfach ignoriert. Es könnte nur ein “Entwicklermodus” im Browser sein, aber wir könnten während der Entwicklung 0-Transpiling erreichen.

  3. Vereinfachen Sie das eifrige Laden von Ressourcen (um Bündelung zu vermeiden)

Auch dies dient nur der Entwicklung. Ich weiß, dass viele dieser Tools ihren Platz in Produktions-Builds, Unterstützung älterer Browser usw. haben.

1180200cookie-checkTypeScript-Unterstützung in modernen Browsern

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy