本連載は、「 エキスパートへの道しるべ(Load to Expert) 」をテーマとして、初級者がエキスパートになるためのヒントを、日本を代表するエキスパートの方々に伺う企画です。
TypeScriptは現代のWeb開発において欠かせない言語となっています。今回は、TypeScriptのエキスパートとして知られるuhyo氏に、初学者向けのTypeScript学習法や魅力について詳しく話を伺いました。これからTypeScriptを学ぼうと考えている方に、確かな道筋を示す内容となっています。

uhyoさんをTechFeed上でフォローしよう!
TypeScriptとは?その魅力と重要性
――自己紹介をお願いします。
uhyo: uhyoと申します。TypeScriptのTechFeed公認エキスパートとして、TypeScriptに関する情報発信を行っています。
普段はReactなどを使用した、フロントエンド技術に関わることを中心にお仕事をしています。
――TypeScriptの概要と魅力を教えてください。
uhyo: TypeScriptとは、マイクロソフトが開発したプログラミング言語で、ざっくり言えば JavaScriptに型をつけたようなもの になります。
JavaScript自体はフロントエンドの領域で広く使われている言語ですが、TypeScriptはそのJavaScriptに型を導入することで、より安心して使うことができ、大規模な開発にも耐えうるという特徴を備えています。
現在では、TypeScriptはデファクトスタンダードの地位を確立しているので、フロントエンドエンジニアにとっては必須と言っていい技術 です。なので正直なところ、TypeScriptの魅力がどうこうというよりは「 TypeScriptを学ぶ以外の選択肢がない 」という状況かとは思います。
そのような中であえて魅力を挙げるとしたら、 開発しているマイクロソフトの人たちが非常に優秀なため、ユニークで魅力的な言語機能がどんどん生み出されている点 かなと思います。
――TypeScriptの面白い機能として、パッと思いつくものはありますか?
uhyo: そうですね…一つ挙げるとするなら、 条件型(Conditional Types) は面白いし、便利だと思いますね。他の言語ではあまり見られない機能で、型のところに条件分岐を置くことができるので、条件に応じて型が変わるような、柔軟な型定義が可能です。
――面白いですね。ちなみに、TypeScriptはどれくらいの頻度でアップデートされているのでしょう?
uhyo: TypeScriptは基本的に3ヶ月に1回、定期的にリリースするスケジュールになっています。新しいバージョンがリリースされると、次のバージョンの開発が始まります。
開発サイクルは、1〜2ヶ月の開発期間の後βバージョンが出て、その後、RC(リリース候補)バージョンを経て安定版がリリースされる、というのを3ヶ月のサイクルで繰り返しています。
TypeScriptの情報をよく見ている人は、βの段階でチェックしていることが多いですね。次のバージョンで良さそうな機能は大体βの時に明らかになるので、そこに注目している人は結構多いと思います。
uhyoさんのTypeScriptエキスパートへの道のり
―― uhyoさんがエキスパートになるまでにどのように学んできましたか?
uhyo: 基本的には、ネットで調べて試して…ということを繰り返してここまできたかなと思います。技術書とかを読まれる方は多いと思うんですけど、自分はあまりそういうのを読んでおらず、基本的にはネットの記事で読んだりして学習してきました。
私は実は、「Web標準」が好きなんです (※)。実は中学生くらいの頃にWeb標準に出会いまして、当時の自分にはまだ難しかったところもあるんですが、なるべく理解しようと色々ネット上の記事など調べていくうちに、様々な良質な情報に助けられていることに気づいたんです。そこで私も、質の高い情報を発信できるようになりたいと思い、それが今も活動の根底にあるかなと思っています。 質の高い情報を発信するために、質の高い情報を得る こと、それがエキスパートになるためにやってきたことかなと思います。
※Web標準…現在のWebは、W3C(World Wide Web Consorsium)をはじめとした様々な標準化団体によって仕様が策定されているため、それらに準拠した製品間の互換性が保たれている

初学者のためのTypeScript学習法
――uhyoさんが初学者におすすめする、TypeScriptの学習方法を教えてください。
uhyo: 先ほども言ったようにあまり本を読まない人間なので、インターネットで情報収集をすることが多いです。私は特にSNS、今で言うXなどで情報収集をすることが実は多いです。
情報はたくさん流れてくるので、流石に全部は確認できませんが、知っている人が書いた記事や、普段から「この人は質の高い記事を書くな」と思っているような人の記事はちゃんと見るようにしています。「この人はレベルが高いな」というような人がおすすめしていたり、コメントを書いていたりするような記事も、読む記事を選ぶ際に参考にしています。
――体系的に学ぶためのステップはありますか?
uhyo: 今はいろんな人がいろんな記事を書いてくれているので、それをどんどん読んでいけば、結果として、知識が増えていくことで体系的な情報を身につけられると思います。ただ、記事の中にはレベルの高い記事もレベルの低い記事もあるので、そこを選り分けて、質の高い記事をどんどん読んでいく、取り入れていくということが学んでいくためには重要だと思います。
できれば、記事に書いてあることを裏取りするとか、注意深く読むことですね。
質の低い情報だと、ここ適当に言ってるなぁみたいな箇所とか、歯切れが悪くてなんとなくごまかしがあるような箇所が見つかったりします。
そういうところに敏感になって、 「この記事はそんな正しいこと、もしかしたら言ってないかもな」みたいな勘を養う。 そんなふうに読みながら記事を取捨選択して質の高い情報を集めていくことが、徐々にレベルアップするためには必要なのかな、って思っています。
おすすめの情報源とリソース
――TypeScriptに興味のある人が見ておくべきサイトやアカウントについて教えてください。
uhyo: TypeScriptの詳しいところをちゃんと理解するのであれば、 やはり公式のドキュメントが一番 だと思います。もしそれで足りないことやわからないことがあれば、TypeScriptに詳しい人が書いた記事を見に行くといいでしょう。普段からTypeScriptに関することを積極的に解説してくれる人を探しておくととてもいいと思います。
また、TypeScriptの機能を知るだけではなく、もっとレベルアップしたいという人の場合は、特に背景や機能について詳しく知りたいということであれば、TypeScriptはGitHubで公開されているので、それを見に行くのが一番いいですね。
私はGitHubのIssueを片っ端から開いて読んでいったりしていますが、白熱しているIssueとかだと、ディスカッションを追うのも大変です。そういう時は最近、AIを活用するようにしていますね。長大なディスカッションでも、AIに要約してもらうと大体ぱっと理解できるのでとてもおすすめです。
注目のTypeScript関連トピック
――TypeScriptやその他の技術について、現在注目しているトピックを教えてください。
uhyo: TypeScript自体は現在安定期に入っているので、細かい改善はたくさん入ってきていますが、ドラマチックな変化はあまりないんです。でも逆に、JavaScriptに入りつつある新機能などは注目に値すると思っています。
例えば Temporal 。これは、JavaScriptで日付や時刻を扱うための新しいオブジェクトです。今までJavaScriptで日時を扱うにはDateオブジェクトを使うのが普通でしたが、設計が古く、沢山の問題がありました。Temporalは、そうした問題を解決すべく新たに提案された仕様です。日時を利用するシーンはたくさんあるので、Temporalが使えるようになると、開発現場が結構変わるかなと期待しています。
また、 Reactの最新動向 にも注目しています。やはり、仕事でもかなり使っていますし、フロントエンド技術においてかなり重要な位置を占めているプロダクトですので。
で、ReactもTypeScriptとは密接に関わっています。最近React 19がリリースされましたが、React本体では(互換性を損なうような)破壊的変更は少なかったものの、TypeScriptによる型定義部分にはかなりの影響が出ていて、対応するのも一苦労でしたね。
uhyoさんをTechFeed上でフォローしよう!
これからTypeScriptを学ぶ方へのメッセージ
――最後に、これからTypeScriptを学ぼうとしている読者へメッセージをお願いします。
uhyo: 特にフロントエンド領域では、TypeScriptはほぼ必須の言語になっていますので、TypeScriptを学ぶことは非常に重要です。誰もが身につけるべき、と言っても過言ではありません。
一方でTypeScriptは、これほど広く使われているにも関わらず、非常にユニークな機能もたくさんあるのが面白い点です。なので、ちょっとステップアップとして、TypeScriptならではの独自の特徴にフォーカスして興味を持っていただいたり、勉強していただくと特にいいと思います。
そうすることでTypeScriptの強みを生かすこともできるようになりますし、何よりおもしろい。そしてもちろん仕事でも使えますので、自分のスキルを高めるという点でも、非常に有用なのではないかと思います。
―― 本日は貴重なお時間をいただき、ありがとうございました。
TypeScriptの最先端情報を知りたい方は以下のTechFeedチャンネルをフォローしよう!