Wofür ist das Ziel in tsconfig.json?

93

Was bedeutet targetin tsconfig.json?

{
  "compilerOptions": 
  {
    "sourceMap": true,
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "moduleResolution": "classic",
    "lib": [ "es2015", "dom",  "es2017" ]
  }
}
Ankit Raonka
quelle

Antworten:

107

Ich bin ziemlich neu in Typescript. Was bedeutet Ziel in tsconfig.json?

targetGibt an, welches JavaScript-Ziel von dem angegebenen TypeScript ausgegeben werden soll . Beispiele:

target:es5

()=>nullwird, function(){return null}da ES5 keine Pfeilfunktionen hat.

target:es6

()=>nullwird so, ()=>nullwie ES6 Pfeilfunktionen hat.

Basarat
quelle
5
brauche ich noch babel, wenn ich es5 als Ziel habe, auch mein Typoskript-Code enthält Async und warte, wird das kompiliert, wenn ich Ziel als es5 gebe?
Ankit Raonka
4
Ich brauche kein Babel dafür bas
Basarat
Ich habe verwendet, es5aber es interpretiert Destrukturierung [...arr].mapals arr.slice().map, was für Array-ähnliche Objekte bricht, die nicht haben slice. Wenn ich auf es6 ziele, funktioniert es in meinem Browser, aber funktioniert es für alle?
Qwerty
@ Qwerty Nein, wird es nicht. Zum Beispiel funktioniert es in Internet Explorer 11 nicht, da dies es6 nicht unterstützt und die .map-Funktion nicht hat. Selbst wenn Sie auf es5 abzielen, funktioniert es im Internet Explorer NOCH nicht, da es nicht die Aufgabe des Transpilers ist, Polyfills hinzuzufügen. Sie müssten noch eine Polyfüllung hinzufügen, wenn Sie Nicht-Es6-Browser unterstützen möchten.
Pabrams
@pabrams also IE11 unterstützt nicht einmal alle ES5?
Qwerty
10

Ziel ändert die JavaScript-Version, auf die Sie kompilieren.

Die Optionen sind unter https://www.typescriptlang.org/docs/handbook/compiler-options.html verfügbar

Um besser zu verstehen, wie das Zielflag meinen Code ändert, habe ich einen Testcode für jede der verschiedenen Versionen zusammengestellt, um die Unterschiede besser zu verstehen.

https://github.com/aizatto/typescript-playground/tree/master/dist/test-async-main

Ich mache mir auch Notizen darüber, worauf ich abzielen sollte, je nachdem, welche Umgebung ich betrachte

https://www.aizatto.com/notes/typescript

Aizatto
quelle