【保存版】tsconfig.jsonの「target」オプション:バージョン指定で開発をスムーズに

2024-05-17

TypeScriptにおけるtsconfig.jsonの「target」オプションとは?

このファイルの中で、targetオプションは、コンパイルされたJavaScriptのターゲットとなるJavaScriptのバージョンを指定します。これは、生成されるJavaScriptコードがどのブラウザや実行環境で実行可能であるかを決定します。

targetオプションで指定できる値は、以下の通りです。

  • ES3:JavaScriptの初期バージョン
  • ES5:現在最も広く使用されているバージョン
  • ES6:最新のバージョンの1つ
  • ES7ES8:以降のバージョン

{
  "compilerOptions": {
    "target": "ES6"
  }
}

上記の例では、コンパイルされたJavaScriptコードは、ES6以降のブラウザや実行環境で実行可能になります。

targetオプションを指定しない場合、デフォルトはES5となります。

targetオプションの選択は、プロジェクトの要件によって異なります。古いブラウザをサポートする必要がある場合は、ES5などの古いバージョンをターゲットにする必要があります。一方、最新機能を利用したい場合は、ES6またはそれ以降のバージョンをターゲットにすることができます。

補足

  • targetオプションは、TypeScriptコンパイラが使用するライブラリにも影響を与えます。ターゲットとなるJavaScriptバージョンに対応するライブラリのみが使用されます。
  • polyfillを使用することで、古いブラウザで新しいJavaScript機能を使用することができます。

    targetオプションは、TypeScriptコンパイルされたJavaScriptのターゲットとなるJavaScriptバージョンを指定する重要なオプションです。プロジェクトの要件に応じて適切なバージョンを選択することが重要です。




    TypeScriptにおけるtsconfig.jsonの「target」オプション - サンプルコード

    tsconfig.json

    {
      "compilerOptions": {
        "target": "ES6",
        "module": "commonjs"
      }
    }
    

    index.ts

    function greet(name: string): string {
      return `Hello, ${name}!`;
    }
    
    const message = greet('TypeScript');
    console.log(message);
    

    このコードをコンパイルするには、以下のコマンドを実行します。

    tsc index.ts
    

    コンパイルされたJavaScriptコードは、index.jsファイルに出力されます。

    "use strict";
    
    function greet(name) {
      return `Hello, ${name}!`;
    }
    
    const message = greet('TypeScript');
    console.log(message);
    

    このコードは、ES6の機能であるアロー関数やテンプレートリテラルを使用しています。これらの機能は、targetオプションをES6に設定することで有効になります。

    • この例では、moduleオプションをcommonjsに設定しています。これは、Node.jsのCommonJSモジュールシステムを使用することを意味します。
    • targetオプションを変更することで、生成されるJavaScriptコードのバージョンを変更できます。



    TypeScriptにおける「target」オプションの代替手段

    Babelを使用する

    Babelは、JavaScriptのコードを古いバージョンにトランスパイルするためのツールです。targetオプションの代わりにBabelを使用することで、より柔軟なバージョン管理が可能になります。

    {
      "presets": ["@babel/preset-env"]
    }
    

    上記のpackage.jsonファイルは、Babelを使用して、現在の環境に合わせてJavaScriptコードをトランスパイルすることを指定します。

    Browserlistを使用する

    Browserlistは、さまざまなブラウザと実行環境の互換性を考慮したJavaScriptコードを生成するためのツールです。targetオプションの代わりにBrowserlistを使用することで、より精度の高いバージョン管理が可能になります。

    {
      "browsers": [
        "> 1%",
        "last 2 versions",
        "not dead"
      ]
    }
    
    • 1%以上のシェアを持つすべてのブラウザ
    • 最新の2つのブラウザバージョン
    • 非推奨ではないすべてのブラウザ

    PostCSSを使用する

    /* postcss.config.js */
    module.exports = {
      plugins: [
        require('autoprefixer')({
          browsers: [
            "> 1%",
            "last 2 versions",
            "not dead"
          ]
        })
      ]
    };
    

    targetオプションは、TypeScriptコンパイルされたJavaScriptのターゲットとなるJavaScriptバージョンを指定するための簡単な方法ですが、より柔軟なバージョン管理が必要な場合は、Babel、Browserlist、PostCSSなどの代替手段を検討する必要があります。

    それぞれのツールには長所と短所があるため、プロジェクトの要件に応じて適切なツールを選択することが重要です。


    typescript tsconfig transpiler


    【初心者向け】TypeScriptのフィールド初期化子の使い方

    コードの冗長性を減らす型安全性と初期値設定を同時に実現コンストラクタの記述量を削減コードの可読性と保守性を向上フィールド初期化子は、フィールド名の後に = 記号と初期値を記述することで使用できます。初期値には、リテラル値、変数、式などを使用できます。...


    Angularコンポーネントの拡張/継承:トラブルシューティング

    方法Angularでコンポーネントを拡張/継承するには、主に2つの方法があります。extends キーワードを使用するこれは、最も一般的な方法です。子コンポーネントは extends キーワードを使用して、親コンポーネントから継承します。この例では、ChildComponent は ParentComponent から継承します。ChildComponent は、ParentComponent のすべてのプロパティとメソッドにアクセスできます。...


    TypeScriptのインストールと実行:Node.js、npm、ts-nodeのチュートリアル

    このチュートリアルでは、Node. js、TypeScript、npmを使ってTypeScriptをローカル環境にインストールし、実行する方法を説明します。前提条件このチュートリアルを始める前に、以下の環境が整っていることを確認してください。...


    React 17とTypeScript 2.3で実現するReact Childrenの型安全な開発

    従来の関数コンポーネントの型定義は次のようでした。この場合、childrenプロパティはReactNode型でした。これは、文字列、React要素、その他のコンポーネントなど、あらゆる種類の値を受け取れることを意味します。しかし、これは型安全性においてあまり望ましくありません。...


    関数引数の型チェックやテンプレートリテラルに役立つ!TypeScript 配列から文字列リテラル型への変換

    この方法は、以下の様な場面で役立ちます。関数の引数や戻り値の型として、許可される文字列を厳密に定義したい場合コードの型安全性と可読性を向上させたい場合typeof 演算子を使って、配列の要素の型を取得できます。上記のように、as const アサーションを使って配列を定数型にすると、typeof 演算子によって各要素の型がリテラル型になります。...


    SQL SQL SQL SQL Amazon で見る



    TypeScriptでtsconfig.jsonの「target」と「module」を理解する

    target は、コンパイル後のJavaScriptコードがどのJavaScriptバージョンの仕様に準拠するかを指定します。例えば、target: "es5" を設定すると、ES5の仕様に準拠したJavaScriptコードが生成されます。