TypeScript は言わずと知れた(?)多くのフロントエンドエンジニアメインで書いている今をときめくイケイケ言語。
JavaScript に静的型付けだとかクラス構文だとかを足した JavaScript のすごい版だ!
なぜこの話題かというとたった今こんな記事が Qiita のランキングに入っていて、
その中に
そもそも、元々の JavaScript にも、必要最低限の型は揃っています。それで十分だと思います。ブラウザが直接理解できる、JavaScript という標準語があるんだから、それでいいじゃないですか。TypeScript でわざわざ型を書いたところで、JavaScript にコンパイルしたら消えるだけです。単純に書く量も増えて、エラーも出まくって、効率が落ちるだけです。TypeScript を使わなくても、自分の書いたコードが悪かったら仕事をする上では上司や先輩に必ずコードレビューをしてもらいますし、ESLint という優れた文法チェックのツールもあります。 これだけ面倒でも、最近のフロントエンドは TypeScript が使われていることが多くて気が滅入ってしまいます。面倒さを上回るメリットや理由があるんでしょうか。
という文章があってだな。
この部分に対してコメント欄で沢山の TypeScript はいいぞおじさんたちが TypeScript の良さを説いているという状況。
自分も TypeScript はないと生きていけないレベルで好きだけどそもそもなんで使い始めたんだっけ…
自分が TypeScript を使い始めたきっかけ
1.名前がかっこいいから
なんか JavaScript っていけてないよね。Java とかいう別言語と混同されがちだし。
それに対して名前に Type ってついててなんかかっこいいと思った。
2.なんか流行ってるから
いやなんか俺トレンドに弱いので普通に流行ってると使いたくなっちゃうんだよね。
最近のフロントエンド関連の Qiita の記事とかも TypeScript で書かれているのが多いしね。
3.勉強会
多分これが一番大きくて、フロントエンドの勉強会に行ったんだけど、LT の発表のサンプルコードが全部 JavaScript ではなく TypeScript で書かれていて、もう前提っすよみたいな空気出ちゃってた。
この勉強会で自分も会社のプロダクトに取り入れることを決意。
そう。つまり動機はかなり不純だし、その実用性に魅せられて使い始めたわけではなかった。
なぜ TypeScript を使い続けるか
まあ正直理由はいろいろあるし一言で言えば「やめられない」からなんだけど…
1.開発速度が速い
これ不思議で、書くコードの量だけで言えば理論上 Javascript より多いんだよね。
型定義などがあるので。
まあただその代わりに補完が効く(カーソル下に次に書くコードの候補が出てくる)からそこから選ぶだけでコード書けるしエラーを起こすコード書くと書いてる途中に指摘してくれるので結果的に全然速い。
2.仕様変更に強い
使用が変わったらそれに付随する型を変えればいいだけだから。
API レスポンスのデータとかが変わります!ってなった時にそのレスポンスの型定義書き換えるだけでそれによってエラーになる箇所が全部 TypeCheck されるので超楽。
あとはそれらを書き換えるだけ。
JS だと実行してエラーになって…また直して実行して…みたいなの基本やるハメになる。
3.最新の ES 記法が遠慮なく使える
TypeScript は結局コンパイルされてただの JavaScript になるのでコンパイル先に IE11 とか選択もできるのよね。
バキバキ最新の記法を使ってもコンパイラが頑張って変換してくれる。
IE 向けサイトで最新記法使う背徳感、クセになるわ…
TypeScript の弱点
使ってみるまで利点がイマイチわかんないことだと思う。
自分も不純な動機で初めてリポジトリの言語比率を TypeScript100%にするぞー!って謎のモチベで書いてたらいつの間にかハマってた!みたいな感じだし。
正直使ってしばらくして良さに気づくまでは JavaScript でよくね?って思ってたな。
上の記事を書いた人はどう思ってるか知らないけど TS いいぞおじさん達もおそらくそういう原体験があるからこそ「早くこっちにおいで!」って言いたくなるのかな?って思ったりした。
まあとにかく俺は TypeScript 大好き。
以上。