Open3

Type Assertion (型添削) とType Annotation(型注釈)の違い

chick_tockchick_tock

型アサーションと型アノテーションの違い​

型アサーションと型アノテーション(type annotation)は名前が似ているためかしばしば混同されます。本書では型アノテーションを「型注釈」と表記しています。この2つはTypeScriptの異なる機能です。

型注釈は、コンパイラーに「この変数に代入できるのはこの型だよ」と伝えるものです。コンパイラーは型注釈をヒントに、その型に値が代入可能かどうかをチェックし、代入できないことが分かり次第報告してきます。

let value: number;
// ^^^^^^ 型注釈
コピー
一方、型アサーションはコンパイラーに「君はこの型だと思ってるかもしれないけど、本当はこの型だよ」と型推論の不正確さを伝えるものです。

chick_tockchick_tock

型注釈

「この変数に代入できるのはこの型だよ」と伝えるものです。

コンパイラーは型注釈をヒントに、その型に値が代入可能かどうかをチェックし、
代入できないことが分かり次第報告してきます

型アサーション

「君はこの型だと思ってるかもしれないけど、本当はこの型だよ」
と型推論の不正確さを伝えるものです。