【TypeScript】tsconfig.jsonのcompilerOptionsとは何ですか?
TypeScript には、細かな決まり事を設定できるオプションがあります。
そのオプションを一箇所にまとめているところが、tsconfig.json の中にあるcompilerOptionsです。
compilerOptionsの中身を見ていきます。
※少しずつ更新していく予定です。
target
TypeScript を JavaScript にコンパイルする際、どのバージョンにコンパイルするかを指定します。
例えば、アロー関数を使った TypeScript を作成したとします。
targetをes3にすると、アロー関数をサポートしていないes3でも動作できるように、ファンクション関数に変換して、JavaScript にコンパイルしてくれます。
通常は、es6で問題ありません。
lib
targetに指定しているが、targetにない機能を使いたい場合、libに他バージョンを設定します。
例えば、targetをes6にしたいが、asyncを使う場合は、es2018を指定します。
また、ブラウザを使用する場合は、domも指定します。
module
TypeScprct がコンパイルした後に、どのモジュールで管理するのかを指定します。
strict
以下のオプションをまとめて true にします。
- noImplicitAny
- strictNullChecks
- noImplicitThis
- strictFunctionTypes
- strictPropertyInitialization
- strictBindCallApply
基本は、strictをtrueにします。
noImplicitAny
暗黙的にanyになっているコードが含まれていないかチェックします。
strictNullChecks
nullやundefinedになりうるかチェックします。
nullやundefinedになりうる場合、型指定していないとエラーになります。
noImplicitThis
thisが暗黙的にanyになっているコードが含まれていないかチェックします。
strictFunctionTypes
本来使おうとしていたコードを、変則的に使用しようとしていないかチェックします。
変則的に使用することによる、思わぬエラーを防止します。
strictPropertyInitialization
クラスや、インスタンスの初期化が宣言されている時、コンストラクタで値がセットされているかチェックします。
strictBindCallApply
call、bind、apply が、元となっている関数に対して正しい引数で呼び出されているかをチェックします。
noEmit
noEmitをtrueにすると、コンパイルの結果を JavaScript に出力しないようにします。
型のチェックのみ行い、コンパイルは Webpack など他ツールが行う場合、noEmitをtrueにします。
お知らせ
私事ですが、Udemyで初心者を対象にしたReactの動画コースを作成しました。
Reactについて興味がありましたら、ぜひ下のリンクからアクセスしてください。
詳しくはこちら(Udemyの外部サイトへ遷移します)