TS初めてのTypeScript

Day 0なぜTypeScript/JSからの一歩

型があると何が嬉しいか

AIが生成したコードの取り違えを、型が実行前に見つけてくれる様子を体感する。

「動かしてみて初めて壊れる」を減らす

型のないコードは、間違った値を渡しても、その場では何も言われません。実際に動かして、しかもその部分が実行されたときになって初めて壊れます。AIが生成したコードだと、間違いがどこに紛れているか気づきにくく、これが厄介です。

TypeScriptは値の種類を先に宣言しておくので、合わない使い方をすると実行する前(コードを書いている最中)に警告が出ます。次の比較を見てください。

型なし(JS): 実行するまで気づけない

TYPESCRIPT
function price(count, unit) {
  return count * unit;
}

// unitに文字列を渡してしまった(AIの取り違え)
price(3, "100"); // その場では何も言われない

型あり(TS): 書いた時点で指摘される

TYPESCRIPT
function price(count: number, unit: number): number {
  return count * unit;
}

// 文字列 "100" は number ではないと警告される
price(3, "100"); // ここで赤線が出て気づける

なぜこれがAIプロダクトで効くのか

AIは大量のコードを速く出します。速い分、取り違えも混ざります。型があれば、あなたが全行を精読しなくても、合わない箇所に機械が印をつけてくれます。レビューの負担が下がり、間違いが本番に流れにくくなります。

型は「読める仕様書」にもなる

型注釈は、その関数が何を受け取り何を返すのかを示す小さな仕様書です。あとから読む人(未来の自分やAI)が、中身を全部読まなくても使い方を推測できます。

TYPESCRIPT
// 型を見るだけで「文字列を1つ受け取り、文字列を返す」とわかる
function toUpper(text: string): string {
  return text.toUpperCase();
}
型が使い方の説明になっている
  1. 型を書く
  2. AIに実装を書いてもらう
  3. 型に合わない箇所は警告が出るので、そこを重点的に確認する
  4. 説明できる状態でコミットする

型は万能ではない

型が通っても、ロジック(計算の中身)が正しいとは限りません。型は「形の間違い」を防ぎますが、「意味の間違い」は防げません。動作確認とテストは別に必要です。過信は禁物です。

AIにはこう聞く

「この関数に型を付けて。もし呼び出し側で型が合わない箇所があれば、どこがなぜ危ないか指摘して」と頼むと、型が守ってくれる範囲がはっきりします。

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

型があることの利点として、最も正確な説明はどれですか。

Q2

「型が通ればコードは完全に正しい」と言えない理由を説明してください。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。