【かたしすてむ】
型システム とは?
最終更新:
💡 値の種類と、できる操作のルール
数値・文字列などの値の種類と、どんな操作や組み合わせを認めるかを扱う規則の体系。実行前に検査する静的な仕組みや、実行時に値の種類を扱う動的な仕組みがある。
📌 このページのポイント
型があると何が分かるの?
たとえば数値に使う操作と文字列に使う操作の違いだよ。TypeScriptなら、数値として扱う変数へ文字列を代入するなど、型に合わない使い方を実行前に指摘できる。型の規則で調べられる問題を早く見つける助けになるんだ。
静的と動的はどう違うの?
TypeScriptの静的な型検査は、実行する前にコードから型の整合性を調べるよ。JavaScriptでは同じ変数に数値の後で文字列を入れられるけれど、その文字列に数値用のtoFixed()を呼べば実行時にエラーになる。動的だから値に種類がない、という意味ではないよ。
型推論なら型を書かなくてもいい?
TypeScriptでlet x = 42;と書くと、xの型をnumberと推論するよ。型を書かなくても型検査は働くので、後でx = 'hello';と書けば型エラーになる。状況によっては明示した方がよいし、letとconstで推論結果が異なる場合もあるんだ。
文字列と数値を足したら必ずエラー?
型検査を通ればバグはなくなる?
なくならないよ。計算の意味が間違っていても型が合うことはあるし、外部から来る値が想定どおりかは別に確かめる必要がある。TypeScriptの型注釈はJavaScriptへ変換すると消え、実行時の検証を自動で追加するわけではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「型システム」って出てきたら「値の種類と使い方を決めるルール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Type System」 = 型の体系
💬 typeは型・種類、systemは体系という意味だよ。値の種類と操作の規則をまとめて扱う仕組みを表すよ。