2016-05-31 3 views
1

Verarbeitet Typoskript immer Code (ES6-> ES5) in etwas, das für IE9 geeignet ist. Wenn ja, können Sie Beweise liefern, da ich nichts finden kann, was kategorisch besagt, dass alle gültigen ES6-Codes in IE9 übersetzt werden. (Verschiedene Quellen schlagen vor, dass es kann, aber nicht klar, ob das eine allgemeine Sache oder voll auf ja, es funktioniert einfach)Ist Typecscript 100% kompatibel mit IE9 - wenn nicht wird es beraten, was es nicht tun kann, während Sie programmieren?

Wenn nicht, warnt es oder gibt Fehler zu sagen, dass Sie Feature X nicht verwenden können. Zum Beispiel Ich sehe von der Babel-Site (https://babeljs.io/docs/learn-es2015/), dass es Proxies nicht transfilieren oder polfilen kann, also ich rate, wenn es einen Proxy nicht in gültigen pre-ES6 Code ändern kann, dann hat Typescript das gleiche Problem?

Nochmal wenn ich mir https://kangax.github.io/compat-table/es6/ ansehe und sagen öffne "Destrukturierung, Deklarationen" dann zeigt es Babel mit 21/22 und TS mit nur 15/22. Bedeutet das, dass TS nicht so gut mit Babel arbeiten kann? Wenn ich TS verwende, wird es mich warnen, wenn ich versuche, eine solche Syntax zu verwenden.

+0

ja, TS tun nicht so viel wie babel und es warnt nicht, wenn es gültige TS-Syntax ist normalerweise – YOU

+0

Wenn das der Fall ist (und warum bin ich ein bisschen verwirrt) Blick auf diese Antwort hier - http: // stackoverflow .com/questions/30669753/using-angular-2-with-old-browsers-thanks-to-typescript schlägt vor, dass TS auf ES3 heruntergeht. Wie können sie sagen, dass es auf ES3 ankommt, wenn es nicht 100% ist? Ich möchte TS verwenden, aber ich muss IE8 unterstützen (wird also wahrscheinlich nicht die neuesten und besten ES6-Funktionen verwenden) - aber was passiert, wenn ich meinen Code anrufe, um ES5 zu sagen und es kann nicht a Teil des Codes, wie ich einige letzte Funktion in ES6 verwendet habe? – delp

+0

Sollte IE9 statt 8 sagen – delp

Antwort

1

Der vom TypeScript-Compiler generierte JavaScript-Code benötigt keine Laufzeitbibliothek. Dies ist eine Design-Wahl.

Im ES6 Verbesserung, zwei Dinge:

  1. New ES6 Syntax;
  2. Neu ES6 API.

New ES6 Syntax wie class, Pfeil Funktionen, const, let, for of sind gut zu ES3 umgewandelt, der generierte Code wird auf IE8 laufen.

TypeScript stellt keine API zur Verfügung. Einige ES6-APIs können polyfiliert werden: Promise, Array.from usw. So können wir beispielsweise TypeScript mit es6-shim verwenden.

Einige APIs, wie Proxy, können überhaupt nicht poly- gefüllt werden.

tut es Fehler warnen oder geben zu sagen, dass Sie nicht Feature X

Ja, aber im Vergleich zu ES3 oder ES5 statt IE8 oder IE9 verwenden können.

Sie müssen immer noch Ihre Zielbrowser kennen.

+1

Danke, das ist hilfreich. Denken Sie, ich verwirre mich immer noch beim Betrachten der verschiedenen Tabellen von https://kangax.github.io/compat-table/es6/#typescript und http: //kangax.github.io/compat-table/es5/# und dann höre ich Gespräche, die sagen, TS umfasst alle ES6, aber aus den Tabellen, die sie sonst vorschlagen. – delp

+1

@delp Die Implementierung [wird noch] (https://github.com/Microsoft/TypeScript/wiki/Roadmap). Wenn TypeScript angibt, dass es sich um eine Obermenge von JavaScript handelt, liegt dies nicht daran, dass alle JS-Funktionen bereits implementiert sind. Aber Sie können eine Datei 'file.js' nehmen, sie in' file.ts' umbenennen und dann weiterarbeiten. Sie können das nicht tun, wenn Sie Ihren Code auf CoffeeScript umstellen möchten. Wie SCSS (aber nicht SASS) im Vergleich zu CSS: Es ist die gleiche Sprache, mit einigen zusätzlichen Verbesserungen. – Paleo

Verwandte Themen