compilerOptions
target:
- 出力するJavaScriptのバージョン指定。
- Node.jsのバージョン毎に推奨されるtargetがある。
- 設定値(ES5, ES6/ES2015〜ES12/ES2021)
lib:
- targetで指定したESモジュールに含まれない、使いたいライブラリをここで指定する。
- ブラウザ上で動かすJavaScriptならdomを指定してwindow, documentのような型情報を読み込む。
module:
- 出力されるJavaScriptがどのようにモジュールを読み込むか指定する。
- 設定値:
- commonjs:バックエンド(NodeJS)の場合
- esnext/es6:フロントエンド(JavaScript)の場合
types:
- デフォルトでは、すべての表示されている@typesパッケージがコンパイル時にインクルードされる。
- typesを設定すると、リストに列挙したパッケージのみがインクルードされる。
- 例: "types": "node"の場合、./node_modules/@types/nodeのみコンパイルされる。 outDir:
- コンパイル結果の出力先ディレクトリ。
- 未指定だとtsファイルと同ディレクトリに出力される。
outFile:
- コンパイル結果を一つのファイルにまとめる(true/false)。
- outFileを指定した場合はoutDirオプションは無視される。
rootDir:
- コンパイル対象のソースコードが含まれるルートディレクトリ。
baseUrl:
- 非絶対モジュール名を解決するためのベースディレクトリ。
removeComments:
- TS→JS変換時にコメントを削除する(true/false※デフォルト)。
preserveConstEnums:
- const enum定義をJSコンパイル時に消すか残すか(true/false)。
sourceMap:
- ソースマップファイルの生成を有効化(true/false)。
- コンパイル前後のマッピングJSONファイル。基本trueで良さそう?
allowJs:
- JavaScript(.js, .jsx)ファイルをコンパイルの対象へ含めるか(true/false)。
- デフォルトだとts, tsxファイルのみコンパイルされる。
- モジュール含めコンパイル対象のJSファイルがある場合はtrueにするべき。
checkJs:
- allowJsと連携動作します。
- checkJsが有効化されている場合、JavaScript ファイル内のエラーが報告されるようになります。
moduleResolution:
- tscのモジュールの名前解決の方法。
- 設定値:
- classic(moduleの指定値がAMD・System・ES2015のいずれかである場合)
- node(NodeJSの場合これを選ぶ)
noEmit:
- JavaScript ソースコード、ソースマップ、型定義のファイルを出力しないようにする。
- "型チェック"のみを行いたいときに「true」にする。
jsx:
- TypeScriptでJSXを使う場合のオプション。
- 設定値:
- preserve(変換しない)
- react(React17以前の旧変換)
- react-jsxdev(React17の新変換inDEVビルド)
- react-jsx(React17の新変換inPRODビルド)
skipLibCheck:
- 型定義ファイル(*.d.ts)のチェックをスキップする(true/false)。
- 型定義ファイルでエラーが出ても無視する。
- 各ライブラリの型定義ファイルのコンパイル時間の削減。
allowSyntheticDefaultImports:
- デフォルトIMPORTできないやつをデフォルトIMPORTする時に、型チェックエラーにならないようにする。
- import * as React from 'react';がimport React from 'react';と書けるようになる。
- ただこの設定だけだとdefaultインポートしない状態のままなので、esModuleInteropをtrueにする。
esModuleInterop:
- defaultをエクスポートしていないモジュールを、ES Modules でデフォルトインポートできるように、コンパイル時にヘルパーメソッドを生成する。
- interop(相互運用する)=モジュールをTypeScript(ECMAScript)で使えるようにコンパイルするということ。
forceConsistentCasingInFileNames:
- ファイル名の大文字小文字の一貫性を強制する。
resolveJsonModule:
- JSON モジュールを解決可能にする。
isolatedModules:
- コンパイル対象のファイル間の関係性を一切無視して、全てのファイルを1つのモジュールとしてコンパイルする。
- コンパイル対象の全ファイルがexport構文を含んでいる必要がある。
noFallthroughCasesInSwitch:
- switch文のcaseでフォールスルーを禁止する。
importsNotUsedAsValues:
- 値として使用されないimportをどのように処理するか指定する。
suppressImplicitAnyIndexErrors:
- オブジェクトへインデックスアクセスしたときの暗黙的anyについてのエラーを抑止する(true/false)。
- 例: const obj = { x: 10 }; console.log(obj"foo"); // エラー noUnusedLocals:
- 未使用のローカル変数がエラーになる(true/false)。
noUnusedParameters:
- 利用されていない関数の引数がエラーになる(true/false)。
strict:
- これをONにすると以下のオプションが有効になる。
- noImplicitAny
- noImplicitThis
- alwaysStrict
- strictBindCallApply
- strictNullChecks
- strictFunctionTypes
- strictPropertyInitialization
- strictをtrueにした上で、任意のルールを一つずつfalseにすることが可能。
noImplicitAny:
- 暗黙的にanyになる値をエラーにする(true/false)。
noImplicitThis:
- 使われているthisの型が暗黙的にanyになる場合にエラーにする。
alwaysStrict:
- "use strict";を必ず全てのファイルの先頭行に付与する。
strictBindCallApply:
- bind, call, applyを使用する際に、より厳密に型チェックが行われるようになる。
strictNullChecks:
- null・undefinedの代入がエラーとなる。
- 例: let name: string | null; name = null; //OK
strictFunctionTypes:
- TypeScriptのデフォルトはBivariantlyな挙動だが、このオプションをtrueにするとContravariantlyに型チェックが走るようになる。
strictPropertyInitialization:
- クラス定義時、インスタンス変数の初期化が宣言時、もしくはコンストラクタのどちらでも行われていない場合にエラーになる。