プログラミング TypeScript
プログラミング タイプスクリプト
スケールする JavaScript アプリケーション開発
- 著者:
- Boris Cherny / 今村 謙士 / 原 隆文(ボリス チェルニーイ / イマムラ ケンジ / ハラ タカフミ)
- 出版社:
- オライリー・ジャパン
- 出版日:
- 2020年03月16日頃
- ISBN:
- 9784873119045
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
プログラミング言語 TypeScript の基礎から実践までを網羅的に解説!
プログラミング言語 TypeScript の解説書。TypeScript の型に関する基礎的な内容からその応用、エラー処理の手法、非同期プログラミング、各種フレームワークの利用法、既存の JavaScript プロジェクトの TypeScript 移行の方法まで、言語全般を総合的に解説します。本書全体を通じて、TypeScript の洗練された型システムを最大限活用するために、コードをどのように記述すべきか、なぜそうすべきかを学べます。
技書の森解説
JavaScript のコードベースが大きくなるほど、実行するまで分からない型の食い違いが開発速度を奪います。『プログラミング TypeScript』 (Boris Cherny 著、今村謙士 監訳、原隆文 訳、オライリー・ジャパン発行、オーム社発売、2020 年 3 月刊) は、副題「スケールする JavaScript アプリケーション開発」が示すとおり、その問題に TypeScript の型システムで応えるための言語解説書です。原書は "Programming TypeScript" で、版元は本書を「言語全般を総合的に解説」する 1 冊と位置づけ、型に関する基礎から応用、エラー処理の手法、非同期プログラミング、各種フレームワークの利用法、既存の JavaScript プロジェクトの TypeScript 移行の方法までを収録範囲として挙げています。
全 13 章と付録 A から H の構成、型の初歩から移行とビルドまで
本編は 13 章で、13 章は「終わりに」に当てられ、その後に付録 A から H、練習問題の解答、索引が続きます。1 章「イントロダクション」と 2 章「TypeScript:全体像」でコンパイラー、型システム、TypeScript 対 JavaScript、tsconfig.json を含むコードエディターのセットアップを押さえ、3 章「型について」で any、unknown、boolean、number、bigint、string、symbol、オブジェクト、型エイリアス、合併、交差、配列、タプル、null、undefined、void、never、列挙型を順に見ていきます。4 章「関数」はポリモーフィズムと型駆動開発、5 章「クラスとインターフェース」は「クラスは構造的に型付けされる」「クラスは値と型の両方を宣言する」という節のほか、ミックスイン、デコレーターを扱います。本書の中核は 6 章「高度な型」で、サブタイプとスーパータイプ、変性、割り当て可能性、型の拡大と型の絞り込みといった型の間の関係から、レコード型、マップ型、コンパニオンオブジェクトパターン、ユーザー定義型ガード、分配条件型と infer キーワードを含む条件型、型アサーションや非 null アサーションといったエスケープハッチ、「名前的型をシミュレートする」「プロトタイプを安全に拡張する」までを 1 章で通します。7 章「エラー処理」は null を返す、例外をスローする、例外を返す、Option 型という 4 つの選択肢を比較し、8 章「非同期プログラミングと並行、並列処理」は JavaScript のイベントループからコールバックの処理、プロミス、async と await、非同期ストリーム、型安全なマルチスレッディングへ進みます。9 章「フロントエンドとバックエンドのフレームワーク」では React と Angular 6/7、型安全な API、バックエンドのフレームワークを取り上げ、10 章「名前空間とモジュール」、11 章「JavaScript との相互運用」 (型宣言、JavaScript から TypeScript への漸進的な移行、サードパーティー JavaScript の使用)、12 章「TypeScript のビルドと実行」 (プロジェクトのレイアウト、コンパイルターゲットの指定、ソースマップを有効にする、プロジェクト参照、TypeScript をサーバー上で実行する、TypeScript をブラウザー内で実行する、TypeScript コードを npm に公開する) で実務の周辺へ広がります。付録には型演算子、型ユーティリティ、宣言の振る舞い、サードパーティー JavaScript モジュールのための宣言ファイルの書き方、トリプルスラッシュ・ディレクティブ、安全性に関する TSC コンパイラーフラグ、TSX、ESLint と AST が収められ、多くの章に練習問題が付いています。
なぜそうすべきかまで踏み込む型システム解説の価値
TypeScript の型システムが JavaScript 開発に持ち込む価値は、単に引数の型を宣言できることではありません。構造的型付けの上でサブタイプ関係や変性を理解すると、なぜある代入がコンパイルエラーになり、別の代入が通るのかを予測できるようになりますし、制御フローに沿った 型の絞り込み を使いこなせば、合併型で表現した「取りうる状態」をコンパイラーに追跡させ、分岐漏れを実行前に検出できます。条件型やマップ型は、既存の型から別の型を機械的に導出する道具で、これがあるからこそ API の応答型やフォームの状態型を二重に手書きせずに済みます。一方、型アサーション や非 null アサーションは型検査を意図的に迂回する抜け道であり、本書がこれらを「エスケープハッチ」という章節にまとめて扱っているのは、便利さと危うさを一体で理解させる構成といえます。版元が「コードをどのように記述すべきか、なぜそうすべきかを学べます」と紹介するのは、こうした型システムの理屈を、機能の羅列ではなく判断基準として身につけさせる書き方を指しています。7 章でエラー処理の 4 つの選択肢を並べて比較する構成や、8 章でイベントループの仕組みから始めて型安全な並行処理へ至る構成にも、同じ姿勢が見えます。
2020 年時点の TypeScript を前提に読むための注意と前提知識
発行は 2020 年 3 月で、9 章のフロントエンドのフレームワークが React と Angular 6/7 を題材にしていることからも分かるとおり、周辺ツールの記述は 2020 年時点の技術環境が前提です。TypeScript の言語仕様やツール群は改版を重ねる性質のものなので、コンパイラーフラグやフレームワーク連携の具体的な手順は読者側で公式ドキュメントと突き合わせる必要があります。ただし、型の間の関係、絞り込み、条件型、宣言ファイルの仕組みといった本書の主要部分は言語の根幹に属する内容で、版が進んでも読み替えの負担は小さい部類です。前提知識としては JavaScript の文法と非同期処理の基本経験が求められ、プログラミング自体の入門書ではありません。著者の Boris Cherny は刊行当時の版元紹介で Facebook のエンジニアリングおよびプロダクト部門のリーダーと紹介され、監訳の今村謙士は株式会社カブクで Web アプリケーションのフロントエンド開発を担当、訳者の原隆文はマニュアル翻訳会社、ソフトウェア開発会社を経て独立した、と刊行当時の版元紹介にあります。
元が取れる読者と、別の本が向く読者
本書で元が取れるのは、すでに TypeScript を書いてはいるものの、型エラーの意味を推測で回避している人、any や型アサーションに頼った箇所を減らしたい人、既存の JavaScript プロジェクトを漸進的に TypeScript へ移行する計画を持つ人です。読み終える頃には、複雑なジェネリクスや条件型を含むライブラリの型定義を読み解く力がつき、自分のコードでも型に守らせたい不変条件を型として表現する発想が身につきます。逆に、TypeScript の構文を手早く一覧したいだけの人や、特定のフレームワークの使い方を主目的にする人には、本書の分量と型理論寄りの密度は重く感じられるでしょう。そうした目的別の選び方は JavaScript / TypeScript 本ガイド で整理しています。JavaScript の経験を土台に、型システムを「制約」ではなく「設計の道具」として使えるようになりたいなら、本書は読む価値の高い 1 冊です。
言及した記事 (13 件)
構造力学パズル「SigmaZero」を AI と作った 196 日・952 コミット—Unity教科書の勉強から Claude Code のエージェント組織運営まで
♡ 6Unity, AI, ClaudeCode, Gemini, 構造力学AIに毎回ゼロから説明してませんか — 未経験でも回せる『1枚のAI指示書+セルフレビュー』ループ入門
♡ 4初心者, TypeScript, Next.js, 生成AI, ClaudeCode【TypeScript】例外処理について
♡ 2TypeScript, 例外, 例外処理, throwスマートグラスマニアが、なぜAI Coding.Infoを作ったか ~データで見る2026年8月のAI Codingの動向まとめ~
♡ 1Antigravity, codex, copilot, Claude, AI駆動開発ローカルLLMはAI Codingへ利用可能か? ~データで見る2026年7月のAI Codingの動向まとめ~
♡ 1Gemini, codex, ローカルLLM, ClaudeCode, AI駆動開発何にも知らない人間がTypeScriptを学習したので簡単にまとめた(言語概要から型、関数、クラス、エラー処理まで)
♡ 1TypeScript【TypeScript】ジェネリック型パラメーターの基礎
♡ 1初心者, TypeScript, 入門, 基礎, ジェネリック【TypeScript】関数の宣言と呼び出しに関する基礎知識
♡ 1初心者, TypeScript, 入門, 関数TypeScript 型エイリアス vs インターフェース
♡ 1JavaScript, TypeScript秀丸職人 vs Vim職人
♡ 0ポエム, エディタ, 開発環境, 開発生産性
この本は技書デッキのカードです (攻撃 14 / 備え 2) 図鑑でこの本を見る