Open3
Type Assertion (型添削) とType Annotation(型注釈)の違い
型アサーションと型アノテーションの違い
型アサーションと型アノテーション(type annotation)は名前が似ているためかしばしば混同されます。本書では型アノテーションを「型注釈」と表記しています。この2つはTypeScriptの異なる機能です。
型注釈は、コンパイラーに「この変数に代入できるのはこの型だよ」と伝えるものです。コンパイラーは型注釈をヒントに、その型に値が代入可能かどうかをチェックし、代入できないことが分かり次第報告してきます。
let value: number;
// ^^^^^^ 型注釈
コピー
一方、型アサーションはコンパイラーに「君はこの型だと思ってるかもしれないけど、本当はこの型だよ」と型推論の不正確さを伝えるものです。
型注釈
「この変数に代入できるのはこの型だよ」と伝えるものです。
コンパイラーは型注釈をヒントに、その型に値が代入可能かどうかをチェックし、
代入できないことが分かり次第報告してきます
型アサーション
「君はこの型だと思ってるかもしれないけど、本当はこの型だよ」
と型推論の不正確さを伝えるものです。