型アノテーション【type annotation】型注釈

概要

型アノテーションとはプログラミング言語ソースコード上で、変数や関数の引数、戻り値などが扱うデータ型を明示的に記述すること。人間と開発ツールの双方に型情報を伝える手段であり、誤った型の値による不具合の発見や、コードの可読性および保守性の向上に役立てられている。
型アノテーションのイメージ画像

変数には整数や文字列、真偽値などの型を書き添え、関数には引数や戻り値の型を指定する。これにより、どのような値を受け取り、どのような値を返す処理なのかが、コードを読むだけで把握しやすくなる。

静的型付け言語では型アノテーションが言語仕様の一部として組み込まれており、コンパイル時に型の整合性が検査される。一方、PythonTypeScriptといった動的型付け言語では、本来は型の宣言は不要だ型アノテーションを導入する例が増えている。この場合は実行時の動作を直接変更せず、型検査器や統合開発環境IDE)が補助情報として利用する形が一般的である。

動的型付け言語はもともと型を記述する必要がないためコードを素早く短く書ける点が利点とされてきた。しかし、開発規模が拡大するに連れ、変数への意図しない型の値の代入や、関数への不正な値の受け渡しに起因する不具合が目立つようになった。この課題に対応するため、必要に応じて補助的に型の情報を記述できる仕組みとして型アノテーションが導入されるようになった。

アノテーションを記述しても、プログラムの実行そのものには影響しない言語が多い。実行時に型の食い違いがあってもエラーにはならず、型の整合性を確認するのは、「静的解析ツール」と呼ばれる別のソフトウェアの役割である。Pythonではmypyなどのツールがコードを実行せずに読み込み、アノテーションと実際の値の型が一致しているかを検証する。TypeScriptでは、コンパイル時に型検査を行う仕組みが採用されている。

アノテーションは「型推論」(type inference)と組み合わせて利用されることも多い。型推論とは、コンパイラや解析ツールが代入される値や式から型を自動的に判断する仕組みであり、推論だけで十分な場合は型の記述を省略できる。一方、複雑な式や公開APIライブラリインターフェースなどでは、型アノテーションを記述したほうが意図を明確に伝えられるため、両者を状況に応じて使い分ける言語が多い。

なお、型アノテーションは、値をある型として扱うようコンパイラや型検査器に指示する「型アサーション」(type assertion)とは異なる概念である。アノテーションは変数や関数に期待される型を記録する情報であるのに対し、後者は既存の値に対する解釈を変更するために用いられる。

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