プロジェクトに少しづつStricktNullChecksにを有効にしていく
tsconfigの設定はstrictNullChecks: falseだけど、VSCode上のエラーはstrictNullChecks: trueとして表示される
jsから移行してきたコードをts用に書き換えていきたいが、規模がでかいので、コンパイルが全く通らないのは辛い
けど、そのファイルを触るときはリファクタの一環としてそこの修正をして、徐々に型安全にしていく
別の言い方をすれば、コンパイルエラーが出てるけどコンパイルは通る状態にさせたい
プロジェクト内にtsconfig.jsonとは別の設定ファイルtsconfig.srtictNullChecks.jsonを作る
filesの部分に、今から触るファイルをここへ追加していく
ここに書かれたものはstrictNullCheckされる
ここを徐々に増やしていくことで、最終的に完全なものが得られる
code:ts
{
"extends": "./tsconfig.json", // ←もともとあるtsconfig.jsonのpath
"compilerOptions": {
"noEmit": true, // コンパイル後、jsファイルを出力しない
"strictNullChecks": true
},
"files": [] // ここに徐々にファイルを追加していく
}
実行
$ tsc -w -p tsconfig.strictNullCheks.json
この方法でやるとfilesに含まれたファイルから参照された先もstrictNullCheckしてるっぽい
2つのスクリプト
えらー
自動で、未strict null checkのやつを一覧化
適格なファイルをstrict null checkプロジェクトに自動的に追加
このやり方は完全に至るまではnullの数は減らない
寧ろ増えることもある
例えば関数宣言の引数の型を変更すれば、それを呼び出してるところ全てに影響が出る
なので、消したエラーの数ではなく、解決したファイルの数で進捗を測る