結論:TypeScriptの独学は「型注釈 → 基本の型と型推論 → 関数の型 → オブジェクトの型(interface / type)→ ジェネリクス → 実務・React連携」の順で、各ステップをブラウザで動かしながら進めるのが最短です。 JavaScriptの知識をそのまま土台にして「型」という考え方を一段ずつ積み上げていくのがコツで、いきなりジェネリクスや高度な型から入ると迷子になります。
前提:JavaScriptを先にやるか、TypeScriptから入るか
TypeScriptはJavaScriptに「型」を足した拡張なので、変数・条件分岐・関数・配列・オブジェクトといった素のJavaScriptの文法がまだ不安な人は、先にそちらを固めたほうが遠回りしません。JavaScript側の学習順序は JavaScript独学ロードマップ にまとめてあります。
「そもそもTypeScriptとJavaScriptは何が違うのか」「いつ移行すべきか」が気になる人は TypeScriptとJavaScriptの違いとは? を先に読むと、この記事の学習順序が腑に落ちます。この記事はその先、「TypeScriptを何からどの順で学ぶか」だけに絞って解説します。
なぜこの順序なのか
TypeScriptの学習でつまずく人の多くは、「型」を細かい文法の集まりとして丸暗記しようとしています。そうではなく、扱うデータが単純なものから複雑なものへという順に型を覚えていくと、自然に身につきます。1つの値(string / number)→ 複数の値(配列・関数の引数)→ 構造を持つ値(オブジェクト)→ 抽象化(ジェネリクス)という流れです。
以下、各ステップをブラウザでそのまま動かせる無料レッスンへの導線つきで並べます。TypeScriptは環境構築(Node.jsやtscのインストール)でつまずきがちですが、Become-Coderのレッスンは登録不要・環境構築なしでブラウザ内でそのままコンパイル・実行できます。
ステップ1:型注釈と基本の型(まずここ)
最初のゴールは「変数に型を書く」感覚をつかむことです。const message: string = "こんにちは" のように : 型 を付けるのが型注釈で、これがTypeScriptの一番の土台になります。
まずは 型注釈 ― 変数に型をつける をブラウザでそのまま実行してみてください。続いて 基本の型と型推論 ― number・boolean で、TypeScriptが値を見て型を自動で判断してくれる「型推論」を知ると、「どこに型を書き、どこは書かなくていいか」の感覚が育ちます。
ステップ2:複数の値をまとめる型
1つの値を扱えるようになったら、複数の値へ進みます。配列とタプル ― 複数の値をまとめる で string[] のような配列の型を覚え、any と unknown ― 「型がわからない」を扱う で「型が決まっていない値」の扱いを知ります。any に逃げず unknown を使う、という判断はこの段階で身につけておくと後が楽です。
ステップ3:関数に型をつける
TypeScriptの真価が出はじめるのが関数です。引数と戻り値に型を付けると、間違った値を渡した瞬間に気づけます。
とくにユニオン型(string | number のように「どれか」を許す型)は、実務のTypeScriptで頻出します。ここまでを手で動かしておくと、後で他人のコードを読むときに一気に読みやすくなります。
ステップ4:オブジェクトの型(interface / type)
実際のプログラムが扱うデータは、{ 名前, 価格 } のような構造を持ったオブジェクトです。ここを型で表せるようになると、TypeScriptらしさが完成します。
interface と type は「オブジェクトの形に名前を付けて再利用する」ための道具です。どちらを使うか迷いますが、まずは両方が書けること、そして ? で「あってもなくてもよいプロパティ」を表せることを押さえれば十分です。
ここまでが TypeScriptコース の全10レッスンで、すべてブラウザ内で実行しながら進められます。型の基礎はこの範囲で一通り身につきます。
ステップ5:ジェネリクスと実務・React連携(その先)
型の基礎が固まったら、次は「型そのものを引数のように受け取る」ジェネリクス(Array<T> の T)に進みます。ジェネリクスは配列・関数・オブジェクトの型を一通り書けるようになってから学ぶと、「なぜ必要か」がすっと入ります。逆に順序を飛ばして先に学ぶと、解決したい問題が見えないまま記号だけを覚えることになり、挫折しやすいところです。
実務でTypeScriptが最も使われる場面のひとつがフロントエンドです。ReactのコンポーネントにpropsやstateをTypeScriptの型で付けると、UI開発の安全性が大きく上がります。Reactそのものが初めてなら、先に Reactコース で「状態」と「コンポーネント」の考え方を動かして掴んでおくと、TypeScriptとの組み合わせがスムーズです。
つまずきやすいところ
TypeScript独学でよく詰まるのが、実行時ではなくコンパイル時のエラーメッセージです。慣れないうちは英語のエラーで手が止まりますが、代表的なものはパターンが決まっています。
- 引数に型注釈を書き忘れて
TS7006: Parameter implicitly has an 'any' typeが出る → TS7006 ― 引数に型注釈がない nullかもしれない値を触ってTS2531: Object is possibly 'null'が出る → TS2531 ― null かもしれない値を触った
これらは「TypeScriptが危険を先に教えてくれている」合図で、直せば直すほど型に強くなります。よく出るエラーの逆引きは TypeScriptのエラー集 にまとめてあるので、詰まったら辞書として使ってください。
次に読む
- 型注釈 ― 変数に型をつける(まずここから実行)
- ユニオン型 ― 複数の型を許す(実務頻出)
- interface ― オブジェクトの型に名前をつける
- TypeScriptとJavaScriptの違いとは?(移行の判断)
- JavaScript独学ロードマップ(JSがまだ不安な人へ)
- Reactコース(型を実務で活かす)