型の絞り込み(narrowing)
なぜ学ぶか: 「文字列かもしれないし、空(null)かもしれない値」は、そのままでは使えません。AIのコードにたくさんあるifは、これを解決する仕掛けです。まずは下の例を見てください。
まずはこの例を見てみましょう
// input は「文字列 か null(空)」のどちらか
const format = (input: string | null) => {
if (input === null) {
return "(未入力)"; // null ならここで終わり(早期リターン)
}
// ここから下では、input は「文字列」に確定している
return input.trim();
};ifでnullを先に追い返すと、その下では安心して文字列として使えます。
「かもしれない」値はそのまま使えない
inputはnullかもしれないので、いきなりinput.trim()と書くと赤線が出ます。TypeScriptが「空かもしれないよ」と止めてくれています。
ifが「門番」になる
例のようにnullを先にreturnで追い返すと、TypeScriptは「この下は文字列だけが来る」と理解してくれます。これを絞り込みと呼びます。
AIのコードのifには意味がある
一見ムダに見えるnullチェックも、この門番であることが多いです。消す前に「このifは何を守っているか」を考えましょう。
ステップ 1 / 3
※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。