| 厳格性 |
|---|
| マスタースイッチ:strictNullChecks、noImplicitAny など複数のオプションを一度に有効化。 |
| 型を推論できないパラメータや変数でエラー(無効だと any になる)。 |
| null と undefined がすべての型に代入可能ではなくなり、明示的に扱う必要がある。 |
| 関数パラメータを反変でチェック。不完全なコールバックパラメータの型を捕捉。 |
| bind、call、apply を関数の宣言パラメータと照らして型チェック。 |
| クラスプロパティが初期値を持たず、コンストラクタでも代入されない場合にエラー。 |
| オプションプロパティ { p?: T } が明示的な undefined の代入を受け付けなくなる。 |
| 基底クラスのメンバーを隠すメンバーに override キーワードを要求。 |
| 宣言されたのに一度も読まれないローカル変数でエラー。 |
| 宣言されたのに一度も読まれない関数パラメータでエラー。 |
| 効果のない式文でエラー。 |
| index シグネチャのキーへのドットアクセスを禁止。角括弧を使う(obj["key"])。 |
| あるコードパスが値を返すのに別のパスが返さないときエラー。 |
| break なしで switch の case が次へ落ちるときエラー。 |
| 言語とモジュール |
|---|
| JavaScript の生成レベル(例: ES2022)。新しい target ほど downleveling が減る。 |
| 利用できる組み込み API(例: ES2022、DOM、DOM.Iterable)。 |
| 出力されるモジュールシステム(例: ESNext、CommonJS、NodeNext)。 |
| Node の実際のルールを使う:各ファイルは最寄りの package.json から CJS か ESM を選び、相対 import には拡張子が必要。 |
| import パスの解決方法(例: bundler、node、nodenext)。 |
| ファイルがモジュールとみなされる条件:auto(import/export の有無)、legacy、force(常に)。 |
| CommonJS モジュールから default-import 形式を許可(多くの設定ではデフォルトで true)。 |
| 名前付きの値しか export しないモジュールからの default import を許可(型レベルのみ)。 |
| import は書いたとおりに出力される。型専用の import は import type を使う必要がある(TS 5)。 |
| import が .json ファイルを型付きの値として読み込めるようにする。 |
| .js ファイルをコンパイルの入力に含める。 |
| .js ファイルも JSDoc コメントを読みながら型チェックする。allowJs を暗黙に有効化。 |
| .tsx のコンパイル方法:react-jsx(自動ランタイム)、react(React.createElement)、preserve。 |
| 自動で読み込まれる @types パッケージをこのリストに制限。空配列なら何も読み込まない。 |
| @types パッケージを探すフォルダ。ツリーを上がってすべての node_modules/@types を見る代わり。 |
| すべてのファイルが単独でトランスパイル可能であることを保証(bundler と esbuild が要求)。 |
| 出力 (emit) |
|---|
| コンパイル済み JavaScript の出力先。 |
| ソースファイルのルート。出力ツリーの形状を安定させる。 |
| .js.map ファイルを出力し、デバッガが TypeScript に対応付ける。 |
| source map を .js.map ではなく .js ファイル内のコメントとして埋め込む。 |
| .d.ts 型宣言を出力する(ライブラリに必要)。 |
| .d.ts.map ファイルを出力し、エディタが宣言から TypeScript ソースへジャンプできるようにする。 |
| .d.ts ファイルのみ出力。JavaScript は bundler に任せる(declaration か composite が必要)。 |
| __rest のようなヘルパーを各ファイルに書き込まず tslib から再利用する。 |
| target が ES2015 未満のとき、iterable の for..of、spread、分割代入を正しく処理。 |
| 出力される JavaScript からコメントを取り除く。 |
| 型チェックのみを行い、ファイルを書き出さない(bundler が emit を担う場合に使用)。 |
| パス |
|---|
| 非相対モジュール解決のベースディレクトリ。 |
| import のプレフィックスを場所に対応付ける。例: { "@/*": ["src/*"] }。 |
| 複数のディレクトリを解決用の単一の仮想ルートとして扱う。 |
| プロジェクト構成 |
|---|
| プロジェクトを project reference 向けにビルド可能とマーク(declaration と incremental を有効化)。 |
| 他の tsconfig プロジェクトに依存し、より速く分離されたビルドを実現する。 |
| ビルド情報を保存し、次回の実行で変更のないファイルの再チェックを省く。 |
| その他のチェック |
|---|
| 速度のため .d.ts ファイルの型チェックを省略(デフォルトで true)。 |
| ファイルの実際の大文字小文字と一致しない import でエラー。 |
| 配列とインデックスアクセスが T ではなく T | undefined を返す。 |
| クラスフィールドを単純な代入ではなく Object.defineProperty で生成(ES2022+ の target ではデフォルトで true)。 |
| 古いフレームワークが使うレガシーなデコレータ構文を有効化(標準化以前)。 |
| 長い型名を省略せず、エラーメッセージに完全な型名を表示する。 |
| 副作用のみの import(import "./x.css")が何にも解決されないときエラー。 |
| .ts で終わる import パスを許可(noEmit か emitDeclarationOnly が必要)。 |