カテゴリ: TypeScript 更新日: 2026/02/05

TypeScriptのtsconfig.jsonとは?基本設定の意味を理解しよう

TypeScriptの`tsconfig.json`とは?基本設定の意味を理解しよう
TypeScriptの`tsconfig.json`とは?基本設定の意味を理解しよう

先生と生徒の会話形式で理解しよう

生徒

「TypeScriptを使うときに、tsconfig.jsonというファイルが必要って聞いたんですが、これは何ですか?」

先生

「tsconfig.jsonは、TypeScriptのコンパイル設定を管理するファイルです。これがあることで、プロジェクト全体の動作を一括で管理できるんですよ。」

生徒

「コンパイル設定って、具体的にどんなことを設定するんですか?」

先生

「それでは、tsconfig.jsonの役割と基本的な設定項目について、詳しく見ていきましょう!」

1. tsconfig.jsonとは?

1. tsconfig.jsonとは?
1. tsconfig.jsonとは?

TypeScriptで開発を行うとき、tsconfig.jsonというファイルを作成します。このファイルは、TypeScriptのコンパイラがどのようにコードを変換するかを指定する設定ファイルです。

例えるなら、料理のレシピのようなものです。料理を作るときには、どの材料を使うか、何分加熱するか、といった手順が書かれたレシピが必要ですよね。同じように、TypeScriptをJavaScriptに変換するときにも、どのバージョンのJavaScriptに変換するか、どのファイルをコンパイル対象にするか、といった指示が必要になります。それを記述するのがtsconfig.jsonなのです。

このファイルをプロジェクトのルートディレクトリに配置することで、TypeScriptコンパイラは自動的にこの設定を読み込んで動作します。

2. tsconfig.jsonの作成方法

2. tsconfig.jsonの作成方法
2. tsconfig.jsonの作成方法

tsconfig.jsonは、手動で作成することもできますが、TypeScriptには便利なコマンドが用意されています。コマンドライン(黒い画面のようなもの)で以下のコマンドを実行すると、自動的に基本的なtsconfig.jsonが生成されます。


tsc --init

このコマンドを実行すると、プロジェクトのフォルダ内にtsconfig.jsonファイルが作成され、たくさんの設定項目がコメント付きで記載されています。初めて見ると難しく感じるかもしれませんが、実際によく使う設定は限られているので安心してください。

3. tsconfig.jsonの基本構造

3. tsconfig.jsonの基本構造
3. tsconfig.jsonの基本構造

tsconfig.jsonは、JSON形式で記述されます。JSON形式とは、データを構造化して記述するための書き方の一つで、キーと値のペアで情報を管理します。基本的な構造は以下のようになっています。


{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "strict": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

大きく分けて、compilerOptionsincludeexcludeという3つの主要な項目があります。それぞれの役割を理解していきましょう。

4. compilerOptionsの主要な設定項目

4. compilerOptionsの主要な設定項目
4. compilerOptionsの主要な設定項目

compilerOptionsは、TypeScriptコンパイラの動作を細かく制御するための設定をまとめた項目です。ここでは、初心者がまず知っておくべき重要な設定をいくつか紹介します。

target(ターゲット)

targetは、TypeScriptをどのバージョンのJavaScriptに変換するかを指定します。例えば、"ES2020"と指定すると、2020年版のJavaScript仕様に準拠したコードに変換されます。古いブラウザでも動作させたい場合は"ES5"を、最新の環境であれば"ES2020""ESNext"を指定します。


"target": "ES2020"

module(モジュール)

moduleは、コード内でモジュール(プログラムを部品化したもの)をどの形式で扱うかを指定します。Node.js環境で動作させる場合は"commonjs"、ブラウザ向けのモダンな開発では"ES2020""ESNext"を選択します。


"module": "commonjs"

strict(厳格モード)

strictは、TypeScriptの型チェックを厳格にするかどうかを設定します。trueにすると、より厳しい型チェックが行われるため、バグを未然に防ぐことができます。初心者のうちは厳しく感じるかもしれませんが、将来的に安全なコードを書くためにはtrueに設定することをおすすめします。


"strict": true

outDir(出力ディレクトリ)

outDirは、コンパイル後のJavaScriptファイルをどのフォルダに出力するかを指定します。例えば、"./dist"と指定すると、distフォルダ内にコンパイル済みのファイルが生成されます。


"outDir": "./dist"

rootDir(ルートディレクトリ)

rootDirは、TypeScriptのソースコードがどのフォルダに格納されているかを指定します。通常は"./src"のように、ソースコード専用のフォルダを指定します。


"rootDir": "./src"

5. includeとexcludeの設定

5. includeとexcludeの設定
5. includeとexcludeの設定

includeexcludeは、どのファイルをコンパイル対象に含めるか、または除外するかを指定する設定です。

include(含めるファイル)

includeには、コンパイル対象とするファイルのパターンを配列形式で指定します。例えば、["src/**/*"]と指定すると、srcフォルダ内のすべてのファイルが対象になります。**はすべてのサブフォルダを意味し、*はすべてのファイルを意味します。


"include": ["src/**/*"]

exclude(除外するファイル)

excludeには、コンパイル対象から除外したいファイルやフォルダを指定します。通常、外部ライブラリが格納されるnode_modulesフォルダや、テストファイルなどを除外します。


"exclude": ["node_modules", "**/*.test.ts"]

6. 実際のtsconfig.json設定例

6. 実際のtsconfig.json設定例
6. 実際のtsconfig.json設定例

ここまで学んだ設定を組み合わせて、実際に使えるtsconfig.jsonの例を見てみましょう。これは、一般的なTypeScriptプロジェクトでよく使われる基本的な設定です。


{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "strict": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

この設定では、srcフォルダ内のTypeScriptファイルを厳格な型チェックでコンパイルし、結果をdistフォルダに出力します。esModuleInteropは、CommonJSモジュールとESモジュールの互換性を高める設定で、skipLibCheckは型定義ファイルのチェックをスキップして高速化する設定です。

7. tsconfig.jsonを使ったコンパイルの実行

7. tsconfig.jsonを使ったコンパイルの実行
7. tsconfig.jsonを使ったコンパイルの実行

tsconfig.jsonを作成したら、実際にコンパイルを実行してみましょう。コマンドラインで以下のコマンドを入力するだけです。


tsc

このコマンドを実行すると、TypeScriptコンパイラは自動的にtsconfig.jsonを読み込み、設定に従ってコンパイルを行います。ファイル名を個別に指定する必要がなく、プロジェクト全体を一括で処理できるので非常に便利です。

コンパイルが成功すると、指定したoutDirフォルダ内にJavaScriptファイルが生成されます。エラーがある場合は、コマンドライン上にエラーメッセージが表示されるので、それを確認して修正していきましょう。

8. tsconfig.jsonのメリット

8. tsconfig.jsonのメリット
8. tsconfig.jsonのメリット

tsconfig.jsonを使うことで、以下のようなメリットがあります。

プロジェクト全体の設定を統一できる

チームで開発する場合でも、全員が同じコンパイル設定を使うことができるため、環境による違いがなくなります。

コマンドがシンプルになる

毎回長いオプションを指定する必要がなく、tscコマンド一つでコンパイルできます。

エディタの補完機能が向上する

Visual Studio Codeなどのエディタは、tsconfig.jsonを読み込んでコード補完や型チェックを行うため、開発効率が上がります。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptのループ内で配列の要素を削除する方法を初心者向けに解説!
New2
JavaScript
JavaScriptのループでインデックス番号を活用するポイントを初心者向けに解説!
New3
TypeScript
TypeScriptのincremental設定でビルド高速化!初心者向けコンパイル設定ガイド
New4
JavaScript
JavaScriptのループで無限ループが起きる原因と対策を初心者向けに徹底解説!
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptのイベント処理で複数の関数を実行する方法
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのbreak文・continue文の使い方と違いを理解しよう