【かたしすてむ】
型システム とは?
💡 プログラムの「値に名札をつけて間違いを防ぐ」検査システム
📌 このページのポイント
- 静的型付けはコンパイル時に型チェック(TypeScript・Java・C++)、動的型付けは実行時に型を決める(JavaScript・Python)
- 強い型付けは暗黙の型変換が少なく、弱い型付けは自動変換が多い
- 型推論により、型を明示しなくてもコンパイラが型を自動で判断できる
- 型システムが強力なほど表現できる不変条件が増え、実行前にバグを防げる
型ってそもそも何のためにあるの?
JavaScriptとTypeScriptの違いって型だけ?
型システムが核心の違いだよ。JavaScriptは動的型付けで実行時に型が決まる。TypeScriptは静的型付けで書いた時点で型チェックされる。TypeScriptはJavaScriptにコンパイルされるから、最終的に動くのはJavaScriptだけどね。
型推論って何?
強い型付けと静的型付けって同じじゃないの?
違う軸の話で、よく混同される。「静的 vs 動的」はいつ型チェックするかの話(コンパイル時 vs 実行時)。「強い vs 弱い」は暗黙の型変換をどれだけ許すかの話。Pythonは動的型付けだけど強い型付け(1 + "1"はエラー)。JavaScriptは動的型付けで弱い型付け(1 + "1"は"11"になる)。この2軸を組み合わせて考える必要があるんだ。
まとめ:ざっくりこれだけ覚えればOK!
型システムって出てきたら「値の種類を管理してバグを事前に防ぐ仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Type System」 = 型の体系・型の管理システム
💬 「Type(型・種類)」+ 「System(仕組み)」。数学の型理論(Type Theory)に基づく