読み方 : かたアサーション

型アサーション【type assertion】

概要

型アサーションとはプログラム中の変数や値が特定の型であることを、開発者がコンパイラや型検査器に対して明示的に指示する記法。TypeScriptなど静的型付けの言語で、型推論だけでは判断できない場面で用いられる。
型アサーションのイメージ画像

外部ライブラリから取得した値やJSONを解析したデータWebブラウザから取得した要素などは、コンパイラだけでは具体的な型を判断できないことがある。型アサーションを用いると、開発者が把握している型情報をコンパイラに直接伝えることができ、以後のコードで指定した型に応じたプロパティメソッドを扱えるようになる。

アサーション型変換キャスト)と混同されやすいが、型変換は実行時に値の内部表現を実際に書き換える処理であるのに対し、型アサーションコンパイル時に型の解釈を指定する手法である。アサーションによって実行時にデータ変換が行われるわけではない。実行時の処理コストを増やすことなく、型情報の不一致によるコンパイルエラーを回避できる。

TypeScriptでは、値の後ろに「as 型名」と記述する方法と、値の前に「<型名>」を付ける「アングルブラケット構文」の2種類が用意されている。アングルブラケット構文はReactJSX構文と混同されやすいため、現在はas構文が使われることが多い。なお、number型string型に直接アサートするなど、関連性のない型同士への変換はコンパイルエラーとして扱われる仕組みになっている。

アサーション型安全性を高める機能ではなく、開発者が型検査器に追加情報を与えるための機能である。指定した型が実際の値と一致しない場合でも、コンパイルは通ってしまうため、誤った型を指定すると実行時エラーや予期しない動作に繋がる恐れがある。そのため、値の型が確実に判明している場面に限定して使用することが望ましいとされ、型の絞り込みなど他の手段で対応できる場合はそちらが優先される。

アサーションと似た機能に、変数宣言時に型を明示する「型アノテーション」(type annotation型注釈)がある。アノテーションでは、指定した型に必要なプロパティが不足していたり、余分なプロパティが含まれていたりすると、コンパイラがエラーとして検出する。一方、型アサーション推論された型情報を強制的に上書きするため、こうした不整合があってもエラーが検出されない場合がある。

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