# 型アサーション

エディタ上で値から自動で型推論してくれますが、値がどの型になるか推論できない場合があります。例えば、`document.getElementById`などのHTMLの要素を取得しますが、その要素がdivやinputなどの何の要素なのかを実行するまで推論することができません。そういった場合に、型推論を上書きすることができます。これを**型アサーション**といいます。

型推論は`代入する値 as 型`と記述します。例えば、`document.getElementById('email')`でinputの要素が取得できるとしたら、 `document.getElementById('email') as HTMLInputElement`と記述します。このようにすることで、もし型アサーションしていない場合は、以下にて`element?.value`と呼び出していますが、`value`は`HTMLInputElement`のプロパティなので、エラーとなります。

<pre class="language-typescript" data-title="index.ts◎"><code class="lang-typescript">...
console.log(meeting1.url?.length);

<strong>const element = document.getElementById('email')　as HTMLInputElement;
</strong><strong>console.log(element?.value);
</strong></code></pre>

また、型アサーションは`<HTMLInputElement>document.getElementById('email')`のように記述することもできますが、基本的には前述した記述方法の方が良いかと思います。

```typescript
const element = <HTMLInputElement>document.getElementById('email');
```
