TypeScriptのコンパイルが「重い」と感じたら?`skipLibCheck`という魔法のスイッチ
TypeScriptを使い始めると、必ず一度はぶつかる壁があります。
「設定ファイル(tsconfig.json)って項目が多すぎて、何がなんだかわからない……」
「プロジェクトが少し大きくなると、コンパイル(コードチェック)が終わるまでコーヒーを飲み終わっちゃう……」
そんな悩みを持つあなたに、今日はTypeScriptの現場で「まず最初にこれだけはやっておけ!」と口を酸っぱくして教える、魔法の設定項目`skipLibCheck`をご紹介します。
これを覚えるだけで、あなたの開発体験(Developer Experience)は劇的に軽やかになりますよ。
—
「node_modules」という巨大な図書館
まず、想像してみてください。あなたが今、TypeScriptでWebアプリを作っているとします。便利な機能を使うために、外部ライブラリ(他の誰かが作った便利なプログラムの集まり)をインストールしますよね。
そのライブラリたちは、あなたのプロジェクト内の`node_modules`というフォルダに溜まっていきます。ここには、あなたが書いたコードだけでなく、ライブラリを提供している人たちが書いた「型定義ファイル(.d.ts)」という説明書が何万行も入っています。
TypeScriptは、「あなたの書いたコード」だけでなく、「node_modulesの中にある膨大な説明書」まで全部、毎回チェックしようとします。
……これ、冷静に考えると大変なことですよね。
自分自身はちゃんと宿題をしているのに、先生が「クラス全員分の参考書に誤字脱字がないか、毎回全部チェックする」と言い出したら、いつまで経っても授業(開発)なんて始まりません。
`skipLibCheck` は「先生のチェックを省略する」スイッチ
この「全員分の参考書チェック」を、「あなたの書いたコードだけに集中しましょう!」と先生に伝える設定、それが`tsconfig.json`にある`skipLibCheck`です。
これを `true` に設定すると、TypeScriptは「外部ライブラリの説明書の中身は、とりあえず信頼して飛ばしちゃおう!」と判断します。これにより、コンパイルの時間は驚くほど短縮されます。
設定方法
あなたのプロジェクトのルートディレクトリにある `tsconfig.json` を開いてみてください。`compilerOptions` という項目の下に、次のように書き加えるだけです。
{
“compilerOptions”: {
// 他の設定項目が並んでいるはずです
“target”: “es5”,
“module”: “commonjs”,
// ここが今回の主役です!
// node_modules内の型チェックをスキップして、爆速コンパイルを実現します
“skipLibCheck”: true
}
}
たったこれだけ。「本当にこれだけでいいの?」と不安になるかもしれませんが、現場のプロはほぼ100%の確率でここを `true` にしています。
なぜこれが「安全」と言い切れるのか?
「チェックをスキップしたら、バグを見逃さない?」と心配になるかもしれませんね。でも、大丈夫。安心してください。
- ライブラリの作者を信じる: そもそも、世の中のメジャーなライブラリは、作者自身がちゃんとテストをしています。あなたがわざわざ他人のコードの細かい型ミスまで監視する必要は、ほとんどありません。
- あなたのコードは守られる: `skipLibCheck` を有効にしても、あなたが書いたソースコードの型チェックは一切スキップされません。 一番重要な「あなたの開発」は、これまで通り厳しく、かつ正確に守られます。
最後に:つまずきやすいあなたへ
TypeScriptを始めたばかりの頃は、設定ファイルの中身を見ているだけで頭が痛くなることもあるでしょう。でも、それはあなたが「正しく理解しよう」と真剣に向き合っている証拠です。
`skipLibCheck` は、いわば「開発のストレスを減らすための賢い手抜き」です。全部を完璧にやろうとしてパンクするより、賢くツールを使って、あなたのクリエイティブな作業に集中する時間を増やしてください。
もしまた設定で迷ったら、いつでもこのページに戻ってきてくださいね。あなたのTypeScriptライフが、今日から少しだけ軽やかで楽しいものになりますように!

コメント