#なぜJSからTSへ?
最近やっているプロジェクトは前月Part1が一通り終わって、今月から新段階に突入しました。
一緒にやっているお客様が結構挑戦的な感じで、前回も配布されたばかりのVue3.0を使うことにして、
今回もJSをやめて、TSの船に乗せましょう!とおっしゃいました。
やれやれDaze
#何の区別があるの?
基本的にJSができることがTSが全部できると、wikiがそう言いました。
その上、データ型がちゃんと書かなきゃいけない、さもないとビルドが通りません。
ちなみに型付の言語を書くのが4、5年ぶりでした。
#やってみよう!なんじゃこれぁ
大体ファイルの拡張子をTSに切り替えた瞬間、VScodeが真っ赤に染めます。
第一関門がimportです。
基本的にimportの時、import元の型が分からない、
もしくは自分が作ったモジュールがexportの型定義してない
などの問題が起きて、利用できなくなります。
自作モジュールはまだ良いですが、
ライブラリーを使うと、そのライブラリーで定義した型も一緒に入れなきゃいけません。
なので、AWSなどのライブラリーを呼び出しているところの改造が結構苦痛でした。
その次、今まで経験として取り込んだ書き方、作り方もたまたま落とし穴になります。
今までTDDをやっていて、VueJSのmethodsを単独で動かし、
結果を格納するなどの定番テストとしてやったが、
TSではVueJSのmethods呼び出すのが型予測できないため、反則です。
(PS:最後やり方変えずにignoreを付けた)
#良いところ
まぁ良いところもあります。
JSで「戻り値の形が分からないので、どう処理すればいい?」などの悩み時が大分減りました。
コメントの量も少し減らしても、型定義があるので、その分理解がしやすくなる。
コードの質もかなり上がったんじゃないか?と思っています。
まだまだプロジェクトが終わっていないので、TSもいつか慣れると思います。以上!