読み方 : かたすいろん

型推論【type inference】

概要

型推論とはプログラミング言語処理系が、ソースコード中で明示的に型が指定されていない変数や式、関数の戻り値などについて、その値や使われ方から適切なデータ型を自動的に判定する仕組み。開発者が型を逐一記述しなくても、内部的には型が確定した状態でプログラムが扱われる。
型推論のイメージ画像

多くの言語では、変数を定義する際に整数型文字列型といった型情報を明記する必要がある。型推論を備えた言語では、代入される値や前後の文脈から処理系が型を判断するため、記述を省略しながらも型検査による安全性を保つことができる。

例えば、整数の値を代入した変数は、明示的な型宣言がなくても整数型と認識される。関数の引数や戻り値についても、渡される値や内部の演算処理から型が推測することができる場合が多い。処理系が十分な情報を得られない場合は、開発者が型注釈を書く必要がある。

型推論の仕組みは言語によって異なり、単純に代入された値から型を決定するものもあれば、プログラム全体の文脈を解析して整合性のとれた型を導き出す高度な方式を採る言語もある。後者では、引数や戻り値の型が明示されていなくても、呼び出し元や内部の処理から逆算的に型が確定する。

型推論を採用する言語としてTypeScriptKotlinSwiftRustHaskellなどがあり、JavaやC++、C#といった従来の静的型付け言語にも限定的な範囲で同様の機能が導入されている。TypeScriptでは変数の初期化時に代入した値の型がそのまま変数の型として扱われ、以後は異なる型の値を代入しようとするとエラーが検出される。

静的型付け言語は、コンパイル時に型の誤りを検出できる一方、型宣言を書く手間が増えるという課題を抱えていた。動的型付け言語は記述量が少なく済むが、型の誤りが実行するまで発覚しないことがある。型推論は両者の利点を組み合わせた仕組みで、コードの記述を簡潔に保ちながら静的型付け型推論による安全性を確保することができる。なお、型の指定を省略できることと動的型付け­であることは別の概念であり、型推論を備えた言語であっても型の整合性はコンパイル時に厳密に検査されるのが一般的である。

(2026.7.23更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。