teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足

2018/05/23 15:09

投稿

yhg
yhg

スコア2161

answer CHANGED
@@ -9,4 +9,25 @@
9
9
  if (isHTMLTextAreaElement($title)) {
10
10
  $title.value = 'test';
11
11
  }
12
+ ```
13
+
14
+ ---
15
+
16
+ think49 さんが書いてくれてますが補足しますと、
17
+
18
+ ```typescript
19
+ document.getElementsByClassName('XX').namedItem('Title')
20
+ ```
21
+
22
+ で取得した値は `Element` 型で、この型は `value` プロパティを持たないので、
23
+ `value` プロパティを持つ `HTMLTextAreaElement` 型などとして扱えるように Type Guard を使ってやるわけです。
24
+
25
+ このテクニックはイベントを受け取ったときの `event.target` の型確定などにも(個人的には)よく使います。
26
+
27
+ ```typescript
28
+ hoge.addEventListener('foo', event => {
29
+ if (isHTMLTextAreaElement(event.target)) {
30
+ event.target.value = 'foo';
31
+ }
32
+ });
12
33
  ```