TypeScriptを学んでいる

TypeScriptを学び始めている中で感じていること

実践TypeScriptをざっくり読んで、ざっくりとTypeScriptについて理解したので現時点の感想を残しておく。

はじめに

自分用メモの位置づけの記事です。

現時点で好印象を抱いています。

感じた違和感

今まで身につけてきたオブジェクト指向を前提とした言語のパラダイムとはなんかちょっと違う感じがする。

特に、気に入らないわけじゃないが型定義ファイルに慣れない。違和感の正体はまだわからない。

理解したメリット

ピュアなJSだと、戻り値の型が不明で脳内デバッグしながら書くコストがあるのを少し問題に感じていた。

また、Vueだとコンポーネントにどんなオブジェクトを渡せば良いのかが対象のコンポーネントの中身を読まないとわからなかったりする問題があると感じていた。

型定義があるおかげでそれらが改善されるのは理解した。

null許容とnull非許容には好印象

null安全を実現できる言語仕様は良い。kotlinを学んだときも思ったが、コードの書き手にnullのときのハンドリングを強制できるのは良い。

絞り込まれていく型推論

型定義には違和感がありはするが、型チェックで型推論される型がどんどん絞り込まれていくのには書きやすそうな印章を受けた。この良さを実感すれば型定義を書くことの違和感は消えるのかもしれない

VS Codeが前提

ただし、型推論の恩恵を受けるためにはVS Codeを利用するのが大前提になる…のかな

まだ、Intellijでの書き心地を試してないがきっとそうだと思う

重厚感はある

確かに壊れたらある程度はコンパイルエラーで気づけるので大規模なアプリには適していそう。

同様の理由で長期間利用される想定のアプリにも適しているだろう。

例えば、propsの渡し方が変わったときとか。

寿命が短かったりずっと小規模のままが想定されるアプリにはちょっと重厚すぎる印象ではある。

弊社サービスには現時点では採用不可

覚えてもらうのにかかるコスト以上のメリットが返ってくるイメージがわかなかった。

教えるコストがそれほどかからないなら採用可能かもしれないが、今すぐ採用すると全員にペアプロで教えるレベルの手間がかかるはず…。

今後の計画

実践編のReact/NextとExpressを読み飛ばした&それ以外の箇所も写経していないので、まずVue/Nuxtのチャプターの写経をする。

その後、導入編を読み直しての気になった章と理解が浅い章の写経をする。

おそらく、1ヶ月強はかかるのではなかろうか。

それが済んだらフロントエンドはSPAをNuxt.jsとTypeScript(とVuetify)で、バックエンドはRESTful APIをKotlinとSpring Boot 2.1.xで、という構成で何かアプリでも書いてみよう。

ちょっと前に社内で少しだけ話題になってたThanks Cardのアプリのプロトタイプ1でも作ってみようかな?

最後に

まだまだ理解が浅いのでもっと学ぶと意見が変わると思う。

少なくともすぐに自社サービスに採用できないからといって、途中で学習を辞めようとは思わないくらいには可能性を感じている。

キャッチアップが終わったときに印象がどうかわっているか、楽しみ。


  1. これのパクリアプリ