2016-11-04 1 views
3

Ich habe gerade begonnen, Typescript in einem Projekt zum ersten Mal zu verwenden.es6 Map() kompiliert nicht zu es5 bei Verwendung von Typescript

Ich möchte wirklich Map() verwenden, um ein kleines Array von Schlüsselwertpaaren zu organisieren.

Leider, wenn das Typoskript (mit Schluck und Schluck-Typoskript) zu Vanille kompiliert wird, ist ES5 JavaScript, Map() noch vorhanden. Ich brauche diesen Code, um in ie9 zu arbeiten.

Jeder Rat in diesem Stadium würde sehr geschätzt werden.

+1

TypeScript konvertiert nur ES6-Typen in frühere Versionen von JavaScript. Es konvertiert typisiertes JavaScript in Vanilla-JavaScript. Ihre Frage hat also nicht viel mit TypeScript zu tun. – JLRishe

+0

Verwenden Sie ein Polyfil. Es wird nicht 100% sein, aber Sie sollten damit arbeiten können. – Ben

+0

Vielen Dank für Ihre schnelle Antwort. Ich verstehe jetzt. – fu8ar

Antwort

5

Map ist ein Teil von ES6 und hat nichts mit TypeScript zu tun.

Wenn Sie in der ES5-Umgebung Map verwenden möchten, sollten Sie ein entsprechendes Polyfill einbeziehen.

Meine ersten beiden Gedanken sind:

+0

Vielen Dank. Ich werde das Modul es6-map ausprobieren. Nochmals vielen Dank – fu8ar

+4

Die Tatsache, dass Map ein Teil von ES6 und nicht TypScript ist, ist zwar wahr, ist in diesem Zusammenhang jedoch ein wenig irreführend. TypeScript kompiliert andere ES6 + -Funktionen zu ES5 (z. B. Klassen, Pfeilfunktionen und asynchrone Funktionen). – Frxstrem

1

Sie erhalten eine Shim benötigen oder eine polyfill.

Ich habe es6-map einmal verwendet und es ist ziemlich gut.

Leider gibt es keine TypeScript-Definitionen dafür, also würde mein Vorschlag es6-shim direkt von einem CDN verwenden und dieses Ihrem tsconfig.json hinzufügen.

{ 
    "compilerOptions": { 
     "target": "es5", 
     "lib": ["es6"] 
    } 
} 

Sie werden in der Lage ES6 Karte stark typisierte zu verwenden, wird Ihr Code kompiliert werden, bis ES5 und alte Browser es durch die Shim unterstützen würden.

Verwandte Themen