2
1

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 1 year has passed since last update.

こぼのフロントエンドレビュー帳Advent Calendar 2022

Day 21

【フロントエンド】TypeScriptを使って欲しい

Posted at

はじめに

ずっと、RubyとかPHP、JavaScriptで生きてきたので、2~3年前は、TypeScriptってちょっとハードルが高いように感じてました。

でも、実際やってみるとそんなにハードルってないよ。
メリットしかないといっても過言ではないなと思います。

TypeScriptってどんなもの?

TypeScriptのドキュメントには

TypeScript is JavaScript with syntax for types.

と書かれてます。
TypeScriptってただのJavaScriptに型という拡張構文を追加したに過ぎないんですね。

TypeScriptのメリット

JavaScriptはとても曖昧で自由な言語です。
これがJavaScriptの魅力であるというとそうなのですが、自由というのは無秩序を生みます。
そこに型を加えることでいいことが2つあります。

1. 不具合を減らせる

なんとなく想像できると思うので、説明は不要かと思います。
undefinedやnullが入る余地があるのか、Numberなのか、Stringなのか、Booleanなのか。
入りうる値に自由度がある状態だとif文一つ書くのが怖いんです。

型があることでちゃんと何を担保すべきで何を担保しなくてもいいのかがはっきりします。

2. コードリーディングが速くなる

自分がコードを書く時間より、そのコードが何年も残ってくることを考えると、読み人の方が多いんです。

書きやすさ < 読みやすさ

この正体は何なのか?後世へのドキュメントを書いているようなつもりで書くといいと思います。

3. コードを書くスピードが速くなる

記述量が増えるんだからスピードは遅くなるでしょ。
と思いがちですが、それは違います。

IDEの時代、優秀なIntellisenseやがTypeScriptを使うことで最強となります。

これは確実に記述スピードを上げてくれます。

TypeScriptのデメリットとそれに対しての答え

とはいえ、TypeScriptを使ったことによる弊害あるんでしょ?
と思われる方もいらっしゃるかと思います。

正直なところ、0ではないです。でも限りなく0に近いです。

トランスパイル

いわゆる、TypeScriptを解釈し、古いJavaScriptに変換する処理ですね。
これが障壁になることが結構多いかと思います。

新しいツールを入れるのは導入ハードルがあるのはわかります。
ただ、2022年現在、かなり楽になっています。

webpack × babelというツールが主戦力かと思いますが、他にもesbuildwebpack × swcなど選択肢の幅はどんどん広がっていますし、楽にもなっていっています。
メンテナンスフリーとはいきませんが、一度ある程度勉強してしまえば広がる世界はかなり広いです。

構文を覚える

TypeScriptの構文を覚えるのが大変でしょ?という疑問あると思います。
あるっちゃありますが、すぐになれますよ。

あくまでも型というものを提供しているだけなので、

type User = {
  name: string;
  email: string;
  age: number;
}

の意味がわかればほぼ大丈夫です。
あとは難しそうに見えるのはジェネリクスぐらいですかね?
これは、必要になった時に勉強すればいいと思います。
出てくるシーンは共通化したいシーンです。

関数を共通化したい時に、変数や返り値の型を動的にしたい時が出てくるんです。
その時に学べばいいので、このためだけに導入を見送るのは勿体無いと多います。

まとめ

今回は、TypeScriptを使って欲しいなと思い、記事にしてみました。
ハードルに感じているのであれば、ハードルなんかよりメリットの方が大きいよというのを使ってもらえれば感じられると思います。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?