tsconfig.jsonとは?初期設定の作り方を初心者向けに解説

tsconfig.jsonとは?初期設定の作り方を初心者向けに解説

 

tsconfig.jsonとは

tsconfig.jsonとは、TypeScriptのコンパイル方法をプロジェクト単位でまとめて設定するファイルです。このファイルを用意しておくことで、ファイルごとにコマンドのオプションを指定する手間がなくなります。

少年A
前回tscコマンドでコンパイルできたけど、tsconfig.jsonってファイルもよく見かけるんだけど何なの?
キノ
それ、プロジェクトの設定をまとめておくファイルなんだ。前回の続きとして、今日はこれを整理してみよう

まだTypeScriptの環境構築が済んでいない場合は、先にこちらの記事を読んでおくとスムーズです。

スポンサーリンク

なぜtsconfig.jsonが必要なのか

前回、1つのファイルをコンパイルする方法を紹介しました。

tsc index.ts

しかし実際の開発では、ファイルが1つだけということはほとんどありません。複数のファイルをまとめてコンパイルしたい場合や、細かい設定(型チェックの厳しさ、出力先フォルダなど)を毎回コマンドに書くのは現実的ではありません。tsconfig.jsonに設定をまとめておけば、tscとだけ打つだけで、その設定に沿ってコンパイルしてくれるようになります。

スポンサーリンク

tsc –initで作成する方法

tsconfig.jsonは手書きで作ることもできますが、コマンドで自動生成するのが簡単です。プロジェクトのフォルダで以下を実行します。

tsc --init

実行すると、コメント付きのtsconfig.jsonが生成されます。設定項目が大量に並んでいて最初は圧倒されますが、初心者のうちに触る項目はごく一部です。

最低限おさえておきたい設定項目

数ある設定の中でも、まずは次の4つを押さえておけば十分です。

{
  "compilerOptions": {
    "target": "ES2020",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true
  }
}

targetとは:変換後のJavaScriptのバージョン

targetは、コンパイル後にどのバージョンのJavaScriptとして出力するかを指定します。古いブラウザにも対応させたい場合は古めのバージョンを、モダンな環境だけを想定するなら新しめのバージョンを指定します。迷ったら、まずはある程度新しいバージョン(ES2020前後)を指定しておけば問題ありません。

outDir・rootDirでファイルを整理する

この2つは、ファイルの置き場所を整理するための設定です。

  • rootDir:自分が書く.tsファイルを置くフォルダ(例:src)
  • outDir:コンパイル後の.jsファイルが出力されるフォルダ(例:dist)

これを設定しておくと、書いたコードと変換後のコードが別フォルダに分かれるため、プロジェクトの中身が整理しやすくなります。設定後は、tscとだけ打てば、srcフォルダの中身がまとめてコンパイルされ、distフォルダに出力されます。

tsc

strictとは:型チェックの厳しさ

strictは、型チェックをどれだけ厳しくするかを一括で決める設定です。詳しくはこちらの記事でも紹介していますが、実務のプロジェクトはオンが前提になっていることが多いため、学習中からオンにしておくのがおすすめです。

tsconfig.jsonがあると何が変わるか

tsconfig.jsonを作る前と後で、コンパイルの手間が大きく変わります。

状態コンパイル方法
tsconfig.jsonなしファイルごとにtsc index.tsのように指定
tsconfig.jsonありtscだけで、設定に沿ってプロジェクト全体をコンパイル

よくあるエラー

tsc --init
// error TS5055: Cannot write file '...' because it would overwrite input file.

これは、outDirとrootDirの設定が正しくなく、出力先と入力元が重なってしまっているときに起きるエラーです。rootDiroutDirに、それぞれ別のフォルダ名を指定できているか確認してみてください。

よくある質問

Q. tsconfig.jsonは必ず作らないといけませんか?
A. 1ファイルだけの学習用コードなら無くても動きますが、複数ファイルを扱うプロジェクトでは基本的に作成します。

Q. tsc –initで生成された設定は、そのまま使ってもいいですか?
A. 動作はしますが、outDir・rootDir・strictあたりは、プロジェクトに合わせて自分で見直すのがおすすめです。

Q. targetは何を選べばいいですか?
A. 特別な事情がなければ、比較的新しいバージョン(ES2020前後)を選んでおけば、学習段階では困りません。

まとめ

  • tsconfig.jsonは、コンパイルの設定をプロジェクト単位でまとめるファイル
  • tsc --initで自動生成できる
  • 最初はtargetoutDirrootDirstrictの4つを押さえれば十分
  • 設定しておけば、tscと打つだけでプロジェクト全体をコンパイルできる

公式ドキュメントにも、設定項目の一覧がまとまっています。

TypeScript公式ドキュメント:tsconfig Reference

少年A
毎回tsc index.tsって打たなくてよくなるの、地味に嬉しい
キノ
うん。最初に整えておくと、後がずっと楽になるところだから、早めに慣れておいて損はないよ

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です