【かたしすてむ】

型システム とは?

💡 プログラムの「値に名札をつけて間違いを防ぐ」検査システム
📌 このページのポイント
型システム ― 静的型付け vs 動的型付け 静的型付け コンパイル時に型をチェック int x = 42; ✓ OK x = "hello"; ✗ エラー 代表的な言語 Java / C / TypeScript Go / Rust / Swift 動的型付け 実行時に型を判定 x = 42 ✓ OK x = "hello" ✓ OK 代表的な言語 Python / JavaScript Ruby / PHP
型システムのイメージ
ひよこ ひよこ

型ってそもそも何のためにあるの?

ペンギン先生 ペンギン先生

値の種類を明示することで、間違った使い方をコンパイラが検出できるんだ。「文字列に数値を足す」みたいな操作を実行前に発見してくれる。実行してから初めてエラーが出るより、コードを書いている段階で気づけた方が修正がはるかに楽だよ。

ひよこ ひよこ

JavaScriptTypeScriptの違いって型だけ?

ペンギン先生 ペンギン先生

型システムが核心の違いだよ。JavaScriptは動的型付けで実行時に型が決まる。TypeScriptは静的型付けで書いた時点で型チェックされる。TypeScriptJavaScriptコンパイルされるから、最終的に動くのはJavaScriptだけどね。

ひよこ ひよこ

型推論って何?

ペンギン先生 ペンギン先生

型を明示しなくてもコンパイラが自動で判断してくれる仕組み。「const x = 42」と書けば、xがnumberだとコンパイラが推論してくれる。明示的に「const x: number = 42」と書かなくていい。型推論が強い言語では、型アノテーションを最小限にしながら型安全を保てる。

ひよこ ひよこ

強い型付けと静的型付けって同じじゃないの?

ペンギン先生 ペンギン先生

違う軸の話で、よく混同される。「静的 vs 動的」はいつ型チェックするかの話(コンパイル時 vs 実行時)。「強い vs 弱い」は暗黙の型変換をどれだけ許すかの話。Pythonは動的型付けだけど強い型付け(1 + "1"はエラー)。JavaScriptは動的型付けで弱い型付け(1 + "1"は"11"になる)。この2軸を組み合わせて考える必要があるんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
型システムって出てきたら「値の種類を管理してバグを事前に防ぐ仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Type System」 = 型の体系・型の管理システム
💬 「Type(型・種類)」+ 「System(仕組み)」。数学の型理論(Type Theory)に基づく
← 用語集にもどる