Open1
tsconfig.json
tsconfigを設定する
tsconfig.jsonの作成
typescriptがpackage.jsonのdependencies
に入っているプロジェクトで以下を実行
$ npx tsc --init
typescriptがグローバルインストールされていれば次のように実行も可能
$ tsc --init
Created a new tsconfig.json with:
TS
target: es2016
module: commonjs
strict: true
esModuleInterop: true
skipLibCheck: true
forceConsistentCasingInFileNames: true
オプション
target
- どの動作環境向けにトランスパイルするかを指定
- 例えば
"target":"es5"
を指定した場合は() => {}
といったアロー関数構文をES5
でも動くfunction(){}
という形式にコンパイルしてくれる - Babelなどの専用コンパイラやモジュールバンドラに処理を任せたい場合は
target
に"esnext"
を指定して、そこからバージョンに合わせたコンパイルを各々にお願いすることになる
module
- どのモジュールパターンで出力するかを指定
- バックエンドなら
commonjs
、フロントエンドならes2021
やesnext
を指定すると良さそう
strict
- The strict flag enables a wide range of type checking behavior that results in stronger guarantees of program correctness.
- strict modeは有効化しないとTypeScriptの恩恵が受けにくいので基本trueが無難
esModuleInterop
- CommonJSなモジュールをimportするときにinteropするオプション。
skipLibCheck
- ライブリリの型の不一致を無視するオプション(mochaとjestの方が衝突してコンパイルエラーが起きるのを避けたりする)
forceConsistentCasingInFileNames
- macOSでファイル名が大文字小文字の違いを無視してimportに成功するが、他のOSでは失敗する現象をコンパイラのレベルで阻止する。基本trueが無難