第3回まで無料

TypeScript 入門コース

型注釈と型推論から、ユニオン型・型の絞り込み・ジェネリクス・クラス・ユーティリティ型、そして非同期処理と DOM まで。全50レッスンで「実行する前に間違いが分かる」ところまで進みます。コードと tsc の出力は、すべて実際に動かしたものを載せています。

カリキュラム

全50レッスンを7つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ ブラウザ内のエディタは型を取り除いて実行するだけなので、型エラーの実例は tsc の出力として載せています。

Chapter 1 — TypeScript を始める(第1〜6回)

TypeScript が何を引き受けてくれるのかを、同じ処理を JavaScript と書き比べて掴みます。環境構築と tsconfig.json、型注釈と型推論、そして any を使わずに済ませる方法まで。

Chapter 2 — 型を組み立てる(第7〜16回)

配列・オブジェクト・ユニオン型・交差型と、型に名前を付ける type と interface。「共通するものしか使えない」ユニオン型を、絞り込んで使えるようにするところまで進みます。

7

配列とタプル

number[] と Array<number> は同じ意味。位置ごとに型が決まるタプルと、readonly が守る範囲。

🔒 ベーシック
8

オブジェクトの型と構造的型付け

プロパティ名と型を並べて書く。同じ形なら通る構造的型付けと、その場で書いたときだけ働く余剰プロパティチェック。

🔒 ベーシック
9

型エイリアス(type)

type で型に名前を付けて使い回す。オブジェクト以外にも付けられるが、値としては使えない。

🔒 ベーシック
10

interface と type の使い分け

オブジェクトの型はどちらでも書ける。interface だけの宣言マージと、type にしか書けない型。

🔒 ベーシック
11

オプショナルプロパティと readonly

? を付けると省略できるが undefined が付いてくる。readonly が守るのは 1 階層だけ。

🔒 ベーシック
12

ユニオン型

| でつないだ型は共通のメンバーしか使えない。目印を持たせたタグ付きユニオンで状態を型にする。

🔒 ベーシック
13

リテラル型と as const

値そのものを型にする。let とオブジェクトのプロパティが string に広がる理由と、as const で固定する方法。

🔒 ベーシック
14

交差型(&)

共通するプロパティを切り出して組み合わせる。両立しない型を混ぜると never になる。

🔒 ベーシック
15

型の絞り込み(Narrowing)

typeof・in・instanceof で「いま何であるか」を確かめる。絞り込みが解除される場面まで。

🔒 ベーシック
16

enum とユニオン型

enum は変換時にコードを生成するので node file.ts で動かない。as const とユニオン型との比較。

🔒 ベーシック

Chapter 3 — 関数と型(第17〜23回)

引数と戻り値、コールバック、オーバーロード。関数まわりの型を一通り扱います。型ガード関数とアサーション関数で、自分で書いた判定にも絞り込みを効かせます。

Chapter 4 — ジェネリクス(第24〜30回)

型を引数のように受け取って、渡した型がそのまま返る関数を書きます。keyof・typeof・インデックスアクセス型を組み合わせ、最後に型安全なストレージ関数を作ります。

Chapter 5 — クラスと型定義(第31〜36回)

プロパティの宣言・アクセス修飾子・継承・implements と、クラスまわりの型を扱います。型定義のない JavaScript を安全に使うための .d.ts と @types まで。

Chapter 6 — ユーティリティ型と型演算(第37〜44回)

Partial・Pick・Omit・Record といった標準の型を使い、1 つの型から用途ごとの型を派生させます。後半はそれらが作られている仕組み(マップ型・条件型・infer)と satisfies です。

Chapter 7 — 実践で仕上げる(第45〜50回)

モジュール・非同期処理・fetch のレスポンス検証・エラー処理・DOM 操作。最後に ToDo アプリを組み立てて、型定義を 1 語変えたときに何が起きるかを確かめます。

全50レッスンを終えたら、次はフレームワークの Next.js へ。メンバーシップで全コースが解放されます。