3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#なぜJSからTSへ?
image.png
最近やっているプロジェクトは前月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もいつか慣れると思います。以上!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?