TypeScript には、細かな決まり事を設定できるオプションがあります。

そのオプションを一箇所にまとめているところが、tsconfig.json の中にあるcompilerOptionsです。

compilerOptionsの中身を見ていきます。

※少しずつ更新していく予定です。

target

"target": "es6"

TypeScript を JavaScript にコンパイルする際、どのバージョンにコンパイルするかを指定します。

例えば、アロー関数を使った TypeScript を作成したとします。

targetes3にすると、アロー関数をサポートしていないes3でも動作できるように、ファンクション関数に変換して、JavaScript にコンパイルしてくれます。

通常は、es6で問題ありません。

lib

"lib": ["dom", "es2015", "es2017", "es2018"]

targetに指定しているが、targetにない機能を使いたい場合、libに他バージョンを設定します。

例えば、targetes6にしたいが、asyncを使う場合は、es2018を指定します。

また、ブラウザを使用する場合は、domも指定します。

module

"module": "commonjs"

TypeScprct がコンパイルした後に、どのモジュールで管理するのかを指定します。

strict

"strict": true

以下のオプションをまとめて true にします。

  • noImplicitAny
  • strictNullChecks
  • noImplicitThis
  • strictFunctionTypes
  • strictPropertyInitialization
  • strictBindCallApply

基本は、stricttrueにします。

noImplicitAny

暗黙的にanyになっているコードが含まれていないかチェックします。

strictNullChecks

nullundefinedになりうるかチェックします。

nullundefinedになりうる場合、型指定していないとエラーになります。

noImplicitThis

thisが暗黙的にanyになっているコードが含まれていないかチェックします。

strictFunctionTypes

本来使おうとしていたコードを、変則的に使用しようとしていないかチェックします。

変則的に使用することによる、思わぬエラーを防止します。

strictPropertyInitialization

クラスや、インスタンスの初期化が宣言されている時、コンストラクタで値がセットされているかチェックします。

strictBindCallApply

call、bind、apply が、元となっている関数に対して正しい引数で呼び出されているかをチェックします。

noEmit

"noEmit": true

noEmittrueにすると、コンパイルの結果を JavaScript に出力しないようにします。

型のチェックのみ行い、コンパイルは Webpack など他ツールが行う場合、noEmittrueにします。

ブログ一覧