TypeScript 5.7のtsconfig主要オプションを早見表で整理 2025年5月版
2025年12月21日
最新版 TypeScript 5.8 (2025-05 時点) で利用可能な tsconfig.json オプション一覧をまとめました。
tsconfig.jsonの主要オプション早見表
| # | オプション | 主な設定値例 | 説明 |
|---|---|---|---|
| 1 | target | ES5 ES2022 | 出力する JavaScript の ECMAScript バージョンを指定します。低い値にすると旧環境で動きますが、トランスパイル量とバンドルサイズが増えます。 |
| 2 | module | CommonJS Node18 NodeNext ES2020 | 生成されるモジュール形式を決定します。Node.js 18 固定なら Node18、最新機能を追うなら NodeNext、ブラウザ向けは ES 系が適切です。 |
| 3 | lib | ["ES2022","DOM"] | コンパイラが参照する標準ライブラリを追加します。ブラウザ API を使う場合は DOM を忘れずに指定しましょう。 |
| 4 | allowJs | true | .js ファイルもコンパイル対象に含めます。段階的移行時に役立ちますがビルド時間が増えます。 |
| 5 | checkJs | true | allowJs と併用して JavaScript ファイルにも型エラー診断を行います。 |
| 6 | jsx | react-jsx preserve | JSX の変換方式を設定します。React 17 以降は react-jsx がデフォルト推奨です。 |
| 7 | jsxImportSource | "react" | react-jsx 使用時に自動インポートされるパッケージ名を変更できます。 |
| 8 | strict | true | 主要な厳格チェックを一括で有効化します。 |
| 9 | noImplicitAny | true | 暗黙の any 型をエラーにします。 |
| 10 | strictNullChecks | true | null と undefined を厳密に区別します。 |
| 11 | exactOptionalPropertyTypes | true | オプショナルプロパティの代入をより厳格にします。 |
| 12 | isolatedDeclarations | true | 各ファイルが単独で .d.ts を生成できるか検証します。 |
| 13 | esModuleInterop | true | CommonJS と ES Modules を相互利用しやすくします。 |
| 14 | allowSyntheticDefaultImports | true | default export のないモジュールでも import foo from 構文を許可します。 |
| 15 | moduleResolution | Node Bundler NodeNext | インポート解決のアルゴリズムを選択します。 |
| 16 | moduleDetection | auto legacy force | .js / .ts をスクリプトかモジュールか判定する方式を切り替えます。 |
| 17 | baseUrl | "./src" | 相対インポートの基準ディレクトリを指定します。 |
| 18 | paths | { "@/*": ["*"] } | インポートパスのエイリアスを定義します。 |
| 19 | rootDirs | ["src","gen"] | 複数ディレクトリを 1 つの仮想ルートに統合します。 |
| 20 | typeRoots | ["./types"] | グローバル型定義ファイルの検索場所を指定します。 |
| 21 | types | ["node","jest"] | 自動読み込みする型定義パッケージを限定します。 |
| 22 | customConditions | ["browser"] | package.json の exports / imports に追加条件を渡します。 |
| 23 | resolvePackageJsonExports | true | exports フィールドを解決対象に含めます。 |
| 24 | resolvePackageJsonImports | true | imports フィールドを解決します。 |
| 25 | allowImportingTsExtensions | true | .ts / .tsx 拡張子付きインポートを許可します。 |
| 26 | rewriteRelativeImportExtensions | true | .ts インポートを出力時に .js へ自動書き換えます。 |
| 27 | verbatimModuleSyntax | true | import/export を可能な限り書き換えず出力します。 |
| 28 | resolveJsonModule | true | JSON ファイルを型付きでインポート可能にします。 |
| 29 | useDefineForClassFields | false | クラスフィールドの出力仕様を制御します。 |
| 30 | importsNotUsedAsValues | remove preserve | 型専用 import を JS 出力に残すか制御します。 |
| 31 | isolatedModules | true | 各ファイル単独でのトランスパイル安全性をチェックします。 |
| 32 | allowUmdGlobalAccess | true | UMD グローバルオブジェクトへのアクセスを許可します。 |
| 33 | noEmit | true | 型チェックのみ行い、JavaScript は出力しません。 |
| 34 | emitDeclarationOnly | true | .d.ts のみ生成します。 |
| 35 | declaration | true | 型定義ファイル (.d.ts) を生成します。 |
| 36 | declarationMap | true | .d.ts 用ソースマップを生成します。 |
| 37 | sourceMap | true | JavaScript 用ソースマップ (.map) を生成します。 |
| 38 | inlineSourceMap | true | ソースマップを JS ファイルに埋め込みます。 |
| 39 | outDir | "dist" | コンパイル後の出力先ディレクトリを指定します。 |
| 40 | rootDir | "src" | ソースコードのルートディレクトリを明示します。 |
| 41 | removeComments | true | 出力ファイルからコメントを削除します。 |
| 42 | incremental | true | 差分ビルドを高速化します。 |
| 43 | composite | true | プロジェクト参照機能を有効にします。 |
| 44 | tsBuildInfoFile | ".cache/build" | 差分ビルド用メタデータの保存先ファイル名を変更します。 |
| 45 | assumeChangesOnlyAffectDirectDependencies | true | ウォッチビルドで直接依存のみ再ビルドします。 |
| 46 | disableReferencedProjectLoad | true | エディタで巨大参照ツリーを遅延ロードします。 |
| 47 | skipLibCheck | true | node_modules 内の型チェックをスキップします。 |
| 48 | forceConsistentCasingInFileNames | true | 大文字小文字の不一致インポートをエラーにします。 |
| 49 | noFallthroughCasesInSwitch | true | switch の意図しない fall-through を禁止します。 |
| 50 | alwaysStrict | true | JS の先頭に "use strict" を自動挿入します。 |
| 51 | moduleSuffixes | [".ios",".native",""] | React Native でプラットフォーム別ファイルを優先解決します。 |
| 52 | maxNodeModuleJsDepth | 1 | JS ファイル推論の再帰探索深さを制限します。 |
| 53 | plugins | [{"name":"typescript-styled-plugin"}] | Language Service プラグインを読み込みます。 |
| 54 | diagnostics | true | コンパイル統計情報を詳細に出力します。 |
| 55 | traceResolution | true | モジュール解決手順を詳細ログで確認できます。 |
| 56 | disableSizeLimit | true | 20 000 行を超えるファイルでも警告なくコンパイルします。 |
| 57 | preserveConstEnums | true | const enum をインライン展開せず残します。 |
| 58 | useUnknownInCatchVariables | true | catch (e) 変数の型を unknown にします。 |
| 59 | noUncheckedIndexedAccess | true | インデックスアクセス結果に ` |
| 60 | noPropertyAccessFromIndexSignature | true | インデックス署名経由のプロパティアクセスを厳密にチェックします。 |
| 61 | noImplicitOverride | true | override 指定漏れをエラーにします。 |
| 62 | noImplicitReturns | true | すべてのコードパスで return が必要か検証します。 |
| 63 | noImplicitThis | true | this が暗黙的に any になる状況を禁止します。 |
| 64 | noUnusedLocals | true | 未使用ローカル変数をエラーで報告します。 |
| 65 | noUnusedParameters | true | 未使用パラメータをエラーで報告します。 |
| 66 | exactOptionalPropertyTypes | true | オプショナルプロパティの代入をより厳格にします。 |
| 67 | noCheck | true | 型解析をほぼ行わず高速にビルドします。 |
| 68 | erasableSyntaxOnly | true | TypeScript 独自構文に実行時コードが含まれないか検査し、Node.js の --experimental-strip-types モードと合わせて安全なビルドを保証します。 |
| 69 | libReplacement | true false | lib ファイルをサードパーティ製に差し替える機能を有効/無効化します。5.8 から無効 (false) でオーバーヘッドを削減可能です。 |
用途別の使い方
型安全強化
まずは strict を軸に、小規模から段階的に強化する方法を示します。
jsonc{
"compilerOptions": {
"strict": true,
"exactOptionalPropertyTypes": true,
"noImplicitAny": true
}
}
exactOptionalPropertyTypes を有効にすると、オプショナルプロパティへ 未定義以外 を割り当てた際の見逃しを防止できます。型事故を減らしたい API サーバーや業務システムでは効果大です。
モジュール解決最適化
jsonc{
"compilerOptions": {
"moduleResolution": "NodeNext",
"moduleDetection": "auto",
"baseUrl": "./src",
"paths": {
"@/*": ["*"]
},
"customConditions": ["browser"]
}
}
moduleDetection:"auto"によりpackage.jsonの"type":"module"を自動考慮し、スクリプト/モジュール判定が賢くなります- SPA でブラウザ用ビルドを生成する際、
customConditions:["browser"]を追加するとexportsフィールドの"browser"サブ条件が選択され、軽量バンドルが得られます
実行環境互換性向上
jsonc{
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true
}
}
CommonJS ライブラリを default import で読み込みつつ、package.json を読まずに JSON を型付きでインポートできます。Node.js とブラウザで共通コードを共有するモノリポ構成に最適です。
ビルド出力制御
jsonc{
"compilerOptions": {
"rootDir": "src",
"outDir": "dist",
"declaration": true,
"rewriteRelativeImportExtensions": true
}
}
rewriteRelativeImportExtensions を有効にすると、import "./foo.ts" を自動で ./foo.js に置換した JS が生成され、Babel や Vite を介さず即実行可能な成果物が得られます。フレームワークレスのライブラリ配布で特に便利です。
パフォーマンス高速化
jsonc{
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": ".cache/build.tsbuildinfo",
"assumeChangesOnlyAffectDirectDependencies": true,
"disableReferencedProjectLoad": true
}
}
incrementalで差分ビルドassumeChangesOnlyAffectDirectDependenciesによりウォッチビルドが体感数倍に短縮され、少数ファイルの修正反映が高速化されます- 巨大モノレポでは
disableReferencedProjectLoadでエディタメモリを節約しつつ、必要プロジェクトだけ遅延読み込みします
Yarn での差分ビルド例:
bashyarn tsc --build --watch
Frontend 特化設定
jsonc{
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "react"
}
}
React 17+ 環境では react-jsx がデフォルトで自動 import React を省略しつつ、フラグメントも軽量に展開します。Vite + React なら追加設定なしで即反映されます。
デバッグ支援
jsonc{
"compilerOptions": {
"diagnostics": true,
"traceResolution": true,
"sourceMap": true
}
}
diagnosticsで各フェーズの処理時間を把握traceResolutionで “なぜそのモジュールが見つからないのか” を根本原因から解析
まとめ
まず strict を有効化 → パフォーマンス系でビルド体験を改善 → モジュール解決を最適化 の順で導入すると、学習コストを抑えつつ高品質なコードベースが得られます。
本早見表と目的別スニペットを組み合わせ、プロジェクトの成長に応じて“足りないピース”だけを追加入力してください。
関連リンク
著書
article2026年1月2日TypeScriptの型情報でドキュメントを自動生成する使い方 陳腐化を防ぐ運用も整理
article2026年1月2日NuxtとTypeScriptで型安全な開発をセットアップする手順 スタートガイド
article2026年1月2日TypeScriptで認証と認可をセキュアに設計する 使い方と実装手順を整理
article2026年1月1日TauriとTypeScriptのユースケース 型安全にデスクトップアプリ開発を進める
article2025年12月31日TypeScriptでUIコンポーネントを設計する 型から考えるPropsと責務分割
article2025年12月30日TypeScriptの型安全を壊すNGコードを概要でまとめる 回避策10選で負債を減らす
article2026年1月2日TypeScriptの型情報でドキュメントを自動生成する使い方 陳腐化を防ぐ運用も整理
article2026年1月2日NuxtとTypeScriptで型安全な開発をセットアップする手順 スタートガイド
article2026年1月2日TypeScriptで認証と認可をセキュアに設計する 使い方と実装手順を整理
article2026年1月1日TauriとTypeScriptのユースケース 型安全にデスクトップアプリ開発を進める
article2025年12月31日TypeScriptでUIコンポーネントを設計する 型から考えるPropsと責務分割
article2025年12月30日TypeScriptの型安全を壊すNGコードを概要でまとめる 回避策10選で負債を減らす
blogiPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
blogGoogleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
blog【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
blogGoogleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
blogPixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
blogフロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
review今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
reviewついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
review愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
review週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
review新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
review科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来
