こんにちは。TypeScriptの世界へようこそ。
新しい技術を学ぶとき、一番怖いのは「何が正解で、何が間違いか分からないまま進んでしまうこと」ですよね。TypeScriptを触り始めたばかりの皆さんが、必ずと言っていいほど最初に出会う壁、それが `tsconfig.json` にある `strict: true` という設定です。
今日は、この「厳格な門番」とも言える設定について、少しリラックスして一緒に紐解いていきましょう。
—
TypeScriptの「strict」って、一体何者?
想像してみてください。あなたは今、大きなおもちゃ箱の整理を任されたとします。
`strict: false` の状態は、いわば「とりあえず全部箱に放り込んでおこう!」という状態です。中身が壊れていても、名前が間違っていても、とりあえず箱が閉まればOK。でも、いざ遊ぼうとしたときに「パーツが足りない!」「これ、どこのおもちゃだ?」と大混乱することになりますよね。
一方で `strict: true` は、「箱に入れる前に、全てのパーツが正しいか、壊れていないか、説明書通りかを確認する」という、非常に優秀な整理係を雇うようなものです。
TypeScriptにおける `strict` は、「あとで大事故にならないよう、今のうちに細かいルールを厳しくチェックしてね」という、私たち開発者のための最強の安全装置なんです。
—
実は「一粒で何度もおいしい」魔法のフラグ
`strict: true` を設定すると、実は裏側でたくさんの「細かいチェック機能」が一度にONになります。まるで「朝の準備を完璧にするセット」を買うようなものです。
具体的には、以下のようなチェックが自動的に有効になります。
- 「何が入っているか分からない」を禁止する (`noImplicitAny`)
- 箱に中身を書かずにしまうことを許しません。「これはリンゴです」「これは本です」とちゃんとラベルを貼るように促します。
- 「何もない場所」へのアクセスを許さない (`strictNullChecks`)
- 空っぽの箱を開けようとして「エラー!」と怒られるのを未然に防ぎます。「もし空っぽだったらどうする?」という予備プランを考える癖がつきます。
- 「関数の中で誰が自分を呼んだか」をハッキリさせる (`noImplicitThis`)
- 「この指示は誰へのもの?」という曖昧さをなくし、意図しない挙動を防ぎます。
—
実際にコードで見てみよう
例えば、こんなコードを書いてみたとします。
// strict: false だと、TypeScriptは文句を言いません。
// でも、実行時にエラーになる可能性が高い「危ないコード」です。
function greet(name) {
// name が何なのか(文字列なのか、数字なのか)分からないので、
// 突然「エラー!」とプログラムが止まるリスクがあります。
console.log(“こんにちは、” + name.toUpperCase());
}
greet(123); // これを実行すると、name.toUpperCase が使えずにクラッシュします
これを `strict: true` にすると、TypeScriptの神様が「ちょっと待って!」と教えてくれます。
// strict: true を有効にすると、以下のように書くよう促されます。
// 引数に「これは文字列ですよ(string)」とラベルを貼る
function greet(name: string) {
// TypeScriptが「nameは文字列だと分かっているから、toUpperCaseしても大丈夫だね」と安心してくれる
console.log(“こんにちは、” + name.toUpperCase());
}
// 間違えて数字を入れると、エディタ上で赤線が出て教えてくれます
// greet(123); // エラー:数字はダメだよ!
—
「厳しすぎる!」と感じたら……大丈夫です。
ここまで読んで「うわ、チェックが厳しすぎて開発が進まないかも……」と不安になった方もいるかもしれません。
でも、安心してください。その「面倒くさい」と感じる時間は、将来のあなたが「バグに悩まされて徹夜する時間」を減らしているんです。
もし既存のプロジェクトに導入して「エラーが大量に出て動かない!」となったら、無理に全部を直す必要はありません。まずは `strict: false` で始めて、少しずつルールを厳しくしていくという「段階的なステップアップ」も立派な戦略です。
今日のまとめ
1. `strict: true` は、あなたのコードを守る「最強のボディーガード」です。
2. 最初は厳しく感じるけれど、慣れるとこれなしでは怖くてコードが書けなくなります。
3. エラーは「失敗」ではなく、「もっと良いコードを書くためのヒント」です。
TypeScriptは、あなたの成長を全力でサポートしてくれる最高のパートナーです。最初は少し厳しく感じるかもしれませんが、その先には、自信を持ってコードを書ける「快適な開発体験」が待っていますよ。
まずは `tsconfig.json` を開いて、`”strict”: true` を書き込むところから始めてみませんか? きっと、昨日の自分より一歩先へ進めるはずです。応援しています!

コメント