Day 0・なぜTypeScript/JSからの一歩
型があると何が嬉しいか
AIが生成したコードの取り違えを、型が実行前に見つけてくれる様子を体感する。
「動かしてみて初めて壊れる」を減らす
型のないコードは、間違った値を渡しても、その場では何も言われません。実際に動かして、しかもその部分が実行されたときになって初めて壊れます。AIが生成したコードだと、間違いがどこに紛れているか気づきにくく、これが厄介です。
TypeScriptは値の種類を先に宣言しておくので、合わない使い方をすると実行する前(コードを書いている最中)に警告が出ます。次の比較を見てください。
型なし(JS): 実行するまで気づけない
function price(count, unit) {
return count * unit;
}
// unitに文字列を渡してしまった(AIの取り違え)
price(3, "100"); // その場では何も言われない型あり(TS): 書いた時点で指摘される
function price(count: number, unit: number): number {
return count * unit;
}
// 文字列 "100" は number ではないと警告される
price(3, "100"); // ここで赤線が出て気づけるなぜこれがAIプロダクトで効くのか
AIは大量のコードを速く出します。速い分、取り違えも混ざります。型があれば、あなたが全行を精読しなくても、合わない箇所に機械が印をつけてくれます。レビューの負担が下がり、間違いが本番に流れにくくなります。
型は「読める仕様書」にもなる
型注釈は、その関数が何を受け取り何を返すのかを示す小さな仕様書です。あとから読む人(未来の自分やAI)が、中身を全部読まなくても使い方を推測できます。
// 型を見るだけで「文字列を1つ受け取り、文字列を返す」とわかる
function toUpper(text: string): string {
return text.toUpperCase();
}- 型を書く
- AIに実装を書いてもらう
- 型に合わない箇所は警告が出るので、そこを重点的に確認する
- 説明できる状態でコミットする
型は万能ではない
型が通っても、ロジック(計算の中身)が正しいとは限りません。型は「形の間違い」を防ぎますが、「意味の間違い」は防げません。動作確認とテストは別に必要です。過信は禁物です。
AIにはこう聞く
「この関数に型を付けて。もし呼び出し側で型が合わない箇所があれば、どこがなぜ危ないか指摘して」と頼むと、型が守ってくれる範囲がはっきりします。
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
型があることの利点として、最も正確な説明はどれですか。
「型が通ればコードは完全に正しい」と言えない理由を説明してください。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。