tsconfig.jsonのターゲットは何ですか?


95

は何targettsconfig.json意味しますか?

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

回答:


112

私はTypescriptにまったく慣れていません。tsconfig.jsonのTargetは何を意味しますか?

target指定されたTypeScriptからJavaScriptのどのターゲットを発行する必要があるかを示します。例:

target:es5

()=>nullfunction(){return null}ES5には矢印機能がないためになります。

target:es6

()=>null()=>nullES6には矢印機能があるのでなります。


5
es5をターゲットにしている場合でもbabelが必要ですか?また、typescriptコードにasyncが含まれていて待機していますが、ターゲットをes5として指定するとコンパイルされますか?
Ankit Raonka 2017

4
🌹そのためバベル必要はありません
basarat

私は使用してes5いましたが、それは破壊を[...arr].mapとして解釈しますarr.slice().map。これは、を持たない配列のようなオブジェクトに対して壊れますslice。es6をターゲットにすると、ブラウザーで機能し始めますが、すべての人に機能しますか?
Qwerty 2018

1
@Qwertyいいえ、できません。たとえば、Internet Explorer 11ではes6がサポートされておらず、.map関数がないため、機能しません。es5をターゲットにしている場合でも、ポリフィルを追加するのはトランスパイラーの仕事ではないため、InternetExplorerでは機能しません。es6以外のブラウザーをサポートする場合は、ポリフィルを追加する必要があります。
pabrams 2018

1
@Qwertyええと、私が言っているのは、Typescriptトランスパイルは、不足しているメソッドをポリフィルするのではなく、構文のみを処理するということです。このスレッドはそれをかなりよく説明しています: github.com/frankwallis/plugin-typescript/issues/166
pabrams

10

Targetは、コンパイル先のJavaScriptバージョンを変更します。

オプションはhttps://www.typescriptlang.org/docs/handbook/compiler-options.htmlで入手できます

ターゲットフラグがコードをどのように変更するかをよりよく理解しようとする精神で、私はいくつかのテストコードを異なるバージョンのそれぞれにコンパイルして、違いをよりよく理解しました。

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

また、見ている環境に応じて、何をターゲットにすべきかをメモしています。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.