TypeScript 学習資料

Node+JavaScript / Java / C# のいずれかの経験がある方向け / 本編12章 + 付録4本

📅 作成: 2026-08-28 / 更新: 2026-10-12

JavaScript を書いたことがある方、または Java か C# を知っている方を対象にした TypeScript の学習資料です。プログラミングの基礎(変数・条件分岐・繰り返し・関数・クラス)は説明しません。

ゴールは型の付いた .ts を自分で書き、tsc が出すエラーを自力で読み解いて直せるようになることです。上から順に読んでも、必要な章だけ引いても使えます。

資料一覧

01〜12 は順に読む前提です。A1〜A4 は必要になったときに引くもので、順番に読む必要はありません。どこから手を付けるか迷ったら A1. 逆引き から入ってください。

この資料の約束事

バッジ

TypeScript は同じコードでも設定と実行環境で結果が変わります。差がある箇所だけ、その場でバッジを付けています。

バッジ意味
stricttsconfig.json の strict: true のときだけエラーになる、または挙動が変わる
ESMCJSモジュール形式によって書き方が変わる
Node型ストリップNode が .ts を直接実行する場合の制約
TS7TypeScript 7 と 5 系で挙動が違う箇所。移行時の注意点
(なし)どの環境でも同じ。大半の内容にはバッジが付きません

補足枠「Java・C# から来た人へ」

本文は JavaScript を知っている読者を基準に書いています。Java・C# の経験者がつまずきやすい箇所には、この見出しの枠を添えました。JavaScript 経験者は読み飛ばして構いません。

補うのは静的型付け言語との差分だけです。

「変数とは」「クラスとは」といったプログラミングの基礎は扱いません。逆に、Java・C# の経験がかえって邪魔をする箇所(構造的型付け、型が実行時に消えること、ジェネリクスの扱い)には必ず枠を置いています。

コードの前提

項目前提
TypeScript5.x 以降。バージョン番号は、差が問題になる箇所にだけ書いています
Node.js26 系を対象にしています。.ts の直接実行(型ストリップ)が既定で有効なバージョンです
実行方法コード例は npx tsx ファイル名.ts でそのまま動きます。「▶ 実行」の付いたコードは、ページの上で書き換えて試せます(行末の // => が出力です)
.ts の文字コードUTF-8(BOM なし)+ LF
エラーメッセージ既定の英語をそのまま載せ、日本語訳を添えています(訳は tsc --locale ja の出力に準拠)
動作確認環境Node.js 26.11.1 / npm 11.20.0 / TypeScript 7.0.2 と 6.0.3(これまでの組み合わせは 検証の履歴)

読み方

順に読む場合

範囲位置づけ
01 → 02 → 03順番必須。環境が整わないと以降のコードを動かせません
04・05核心。ここだけは飛ばさないでください
06 〜 0905 の内容に依存します。順に読むのが確実です
10・11独立性が高く、必要な順に読んで構いません
1209 まで終わっていれば着手できます

山場は 05 と 08 です。

05. 構造的型付けは Java・C# 経験者が、08. 型の絞り込みは JavaScript 経験者が最もつまずく箇所です。読者によって難所が違うため、どちらも時間を取って読んでください。

目的から引く場合

状況引く先
tsc のエラーの意味が分からないA1. 逆引き(エラー番号から)
こういう型を書きたいA2. 型レシピ集
こういう処理を書きたいA3. 実務パターン集
ライブラリの型定義が読めないA4. 型レベルプログラミング
環境が動かない・import が解決できない03. tsconfig / 10. モジュールと宣言ファイル

勉強会で使う場合

全5回・1回90分

回範囲ねらい
第1回01〜03環境を動かす。全員が tsc の通る状態を作る
第2回04〜06型を書く。any に逃げない習慣をつける
第3回07〜08絞り込みと網羅性チェック
第4回09〜11ジェネリクスとモジュール
第5回12ハンズオン

参加前の準備

第1回の冒頭で環境構築に時間を使わないよう、次の3点を必ず済ませてから参加してください。

この資料について

作者

LightSpeedC https://lightspeedc.com

この資料の構成

対象読者の想定、章立ての意図、執筆の方針は ZZ. 資料の構成 にまとめています。

計画

課題

これから直すことは 課題の一覧 に置いています。

ルール