📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

96行目: 96行目:
JSXは、JavaScript内でHTMLのような記述ができる構文である。<br>
JSXは、JavaScript内でHTMLのような記述ができる構文である。<br>
<br>
<br>
<syntaxhighlight lang="json">
{
  // TypeScriptコンパイラのオプション設定
  // これらの設定により、TypeScriptがどのようにコードをJavaScriptに変換するかが決まる
  "compilerOptions": {
    // コンパイル対象となるJavaScriptのバージョンを指定
    // ES2020は2020年に標準化されたECMAScript仕様で、async/awaitやオプショナルチェイニングなどの機能が使える
    "target": "ES2020",
    // クラスフィールドの定義方法を新しい仕様(defineProperty)を使うように設定
    // これにより、クラスのプロパティがより予測可能な動作をする
    "useDefineForClassFields": true,
    // TypeScriptで使用できるライブラリの型定義を指定
    // ES2020: ES2020の標準ライブラリの型定義
    // DOM: ブラウザのDOM(document、windowなど)の型定義
    // DOM.Iterable: DOMの反復可能なオブジェクト(NodeListなど)の型定義
    "lib": ["ES2020", "DOM", "DOM.Iterable"],
    // モジュールシステムの形式を指定
    // ESNextは最新のECMAScriptモジュール仕様を使用することを意味する(import/export構文)
    "module": "ESNext",
    // node_modulesの型チェックをスキップして、ビルド速度を向上させる
    // サードパーティライブラリの型エラーを無視することで、開発効率を上げる
    "skipLibCheck": true,
    /* バンドラーモード関連の設定 */
    // ViteやWebpackなどのモダンなバンドラーツールと連携するための設定
    // モジュールの解決方法を「bundler」に設定
    // これにより、バンドラーが独自のモジュール解決ロジックを使うことを前提とした設定になる
    "moduleResolution": "bundler",
    // .ts拡張子を含むimport文を許可する
    // 通常、TypeScriptは拡張子なしでimportするが、バンドラーモードではこれが許可される
    "allowImportingTsExtensions": true,
    // JSONファイルをモジュールとしてimportできるようにする
    // import data from './data.json' のような書き方が可能になる
    "resolveJsonModule": true,
    // 各ファイルを独立したモジュールとして扱う
    // これにより、各ファイルが他のファイルに依存せずにコンパイルされ、Viteなどのツールと相性が良い
    "isolatedModules": true,
    // JavaScriptファイルを出力しない
    // Viteが独自にトランスパイルとバンドルを行うため、TypeScriptコンパイラはファイルを出力する必要がない
    "noEmit": true,
    // JSX(ReactのHTML風構文)を「react-jsx」形式で変換
    // React 17以降の新しいJSX変換方式を使用し、各ファイルで明示的にReactをimportする必要がなくなる
    "jsx": "react-jsx",
    /* コード品質チェック(Linting)関連の設定 */
    // これらの設定により、より厳格な型チェックと潜在的なバグの検出が行われる
    // strictモードを有効化
    // これにより、すべての厳格な型チェックオプションが一括で有効になる
    // (null安全性、暗黙のany型の禁止、thisの型チェックなど)
    "strict": true,
    // 使用されていないローカル変数がある場合にエラーを出す
    // コードの品質を保ち、不要な変数を削除するのに役立つ
    "noUnusedLocals": true,
    // 使用されていない関数のパラメータがある場合にエラーを出す
    // これにより、不要な引数を持つ関数を発見できる
    "noUnusedParameters": true,
    // switch文でcase句からbreak/returnなしで次のcase句に落ちる(fall through)場合にエラーを出す
    // 意図しないバグを防ぐための安全機能
    "noFallthroughCasesInSwitch": true
  },
  // TypeScriptコンパイラが処理対象とするディレクトリを指定
  // この場合、srcディレクトリ内のすべてのTypeScriptファイルが対象となる
  "include": ["src"],
  // プロジェクト参照を設定
  // tsconfig.node.jsonを参照することで、ビルドツール用の設定とアプリケーション用の設定を分離している
  // これにより、Node.js環境で実行されるコード(vite.config.tsなど)とブラウザで実行されるコードで
  // 異なるコンパイル設定を適用できる
  "references": [{ "path": "./tsconfig.node.json" }]
}
</syntaxhighlight>
<br>
==== tsconfig.node.json : ビルドツール用のTypeScript設定 ====
==== tsconfig.node.json : ビルドツール用のTypeScript設定 ====
ビルドツール (Vite等) の設定ファイルをTypeScriptで記述する時に使用する設定である。<br>
ビルドツール (Vite等) の設定ファイルをTypeScriptで記述する時に使用する設定である。<br>