Typescriptは型に厳しい
最近、だいたい午後3時なると集中力が切れる。
だーんと現実逃避モードに落ちてWEBをダラダラと徘徊。
時間ばかりが過ぎていく。。。
一人で作業していると、誰も突っ込んでくれないので非常に困る。
以前、デス行進なプロジェクトでお仕事してた時には何時間でも集中できてたのが、まるで嘘のようだ。
あの時の拘束のキツさには参ってたけど、あまり自由過ぎるのもなかなか厳しいものがある。やはり適度に不自由なほうがいいのかもしれない。
と、こんなことを書きたかったわけではない。
Typescriptがあたり前だけど型に厳しくてちょっとハマッたことを備忘録として記録しときたかったのだ。
JavaScriptのElementクラスにはchildrenというプロパティがあるのだけど、それをtypescriptでさわろうとして怒られた。
error TS2339: Property 'children' does not exist on type 'Element'.
しばらく悩んだがElementではなくHTMLElementにキャストしてやることで解決した。
同様にinputのvalueとかも、HTMLElementじゃダメで、HTMLInputElementを使わないとうまくいかない。
要素固有のプロパティを使う場合はちゃんと、その要素に対応するクラスを使いなさいよという話でした。
あと、昨夜はAndroidStudioのリファクタリングが凶悪すぎてハマっていた。
VisualStudioみたいに関連を調べて変数のリネームを行うものとばかり思っていて、変更箇所をよくよく確認せずidというメンバ変数をbookIdにRefactor!ってやったら、JavaファイルのみならずHTMLやCSS、はてまたSVGの中身まで”id”と名の付くものが全部置換されてしまった(涙)
対象範囲はしっかり確認する必要がある。