目次
第1章 TypeScriptとは何か
- 1-1 なぜTypeScriptが注目されているのか
- 1-2 TypeScriptが開発された背景
- 1-3 TypeScriptで生産性が上がる理由
- 1-4 TypeScript+JavaScriptという二重構造
- 1-5 TypeScriptのエコシステム
第2章 TypeScriptコンパイラの基礎
- 2-1 nodeコマンドをインストールする
- COLUMN Node.jsとブラウザ以外のJavaScriptランタイム
- Windows
- macOS - Homebrew
- 2-2 tscコマンドをインストールする
- プロジェクトディレクトリを用意する
- tscコマンドをプロジェクトにインストールする
- tsc --initでtsconfig.jsonを生成する
- 2-3 tscコマンドでTypeScriptのコードをコンパイルする
- 2-4 tsimpコマンドでTypeScriptのコードをコンパイルせずに実行する
- 2-5 tsconfig.jsonについて知っておくべきこと
- compilerOptions.target - コンパイル先のESバージョン
- compilerOptions.lib - 標準ライブラリの型定義
- COLUMN ダウンレベルとポリフィル
- 2-6 Visual Studio CodeでTypeScript言語サービスを利用する
- 2-7 Visual Studio Codeからスクリプトを実行できるようにする
- COLUMN JSONとJSONCの違い
- 2-8 本書のサンプルコードについて
第3章 ES2015+の基本構文
- 3-1 変数宣言
- varによる変数宣言の復習
- ブロックスコープの変数宣言let
- ブロックスコープ宣言const
- TypeScriptにおけるdeclare var宣言
- 3-2 クラス
- クラスの継承
- 第一級オブジェクトとしてのクラス
- 3-3 文字列
- JavaScriptの文字列リテラルの復習
- テンプレート文字列
- タグ付きテンプレート
- TypeScriptにおける文字列リテラル型
- 3-4 プリミティブ値
- 多倍長整数 / bigint
- シンボル / symbol
- 3-5 配列とタプル
- コンストラクタ代替メソッド
- タプル
- 配列
- 3-6 オブジェクト
- オブジェクトリテラル
- オブジェクトリテラル型
- プロパティ速記法
- 3-7 グローバルオブジェクト
- 3-8 関数とメソッド
- アロー演算子による無名関数
- ジェネレータ関数
- デフォルト引数
- 可変長引数
- 3-9 スプレッド構文
- 関数の引数に対するスプレッド構文
- 配列リテラルに対するスプレッド構文 [...a]
- オブジェクトリテラルに対するスプレッド構文 {...o}
- 3-10 分割代入
- 3-11 条件分岐
- if文
- 3-12 for-ofループ文とイテレータ
- 3-13 async/awaitによる非同期処理
第4章 型演算の基本
- 4-1 JavaScriptの動的型の概要
- 4-2 TypeScriptの静的型の概要
- 構造型 / Structural Typing
- 公称型 / Nominal Typing
- 漸近的型付け / Gradual Typing
- 4-3 any型
- 4-4 unknown型
- 4-5 void型
- 4-6 never型
- 4-7 オブジェクト型
- オブジェクトリテラル的な構文による型定義
- interface宣言による型定義
- オブジェクト型におけるメソッドの定義
- 4-8 クラス型
- implements句
- 4-9 型を引数として受け取るジェネリクス
- コンストラクタシグネチャ
- 4-10 共用体型 / Union Types
- 4-11 交差型 / Intersection Types
- 4-12 余剰プロパティチェック / Excess Property Checks
- 4-13 ナローイングと型ガード
- 4-14 型アサーションのas演算子
- COLUMN 暗黙の型アサーション
- 4-15 as const演算子
- 4-16 non-nullアサーション演算子
- 4-17 ユーザー値技の型ガードを実装する述語関数
- 4-18 ナローイングを起こすためのアサーション関数
- 4-19 satisfies 演算子
- implements句とsatisfies演算子の比較
第5章 高度な型演算
- 5-1 型関数と型演算子
- 型関数のためのユーティリティ
- 条件付き型 / Conditional Types
- 条件付き型の分配 / Distributive Conditional Types
- T[P] - 型のプロパティ参照
- infer型演算子
- 5-2 共用体型と交差型
- 5-3 テンプレートリテラル型
- テンプレート文字列に従って一定の規則を持つ文字列型を作る
- テンプレートリテラル型とinfer型演算子で文字列リテラル型の中身を解析する
- 5-4 組み込み型関数
- Record<KeyType, ValueType> - 連想配列として使うオブジェクト型を生成する
- ReturnType<Fn> - 関数の戻り値を取り出す
- Pick<T, K> - オブジェクト型から一部のプロパティを取り出す
- Omit<T, K> - オブジェクト型から一部のプロパティを除外する
- Partial<T> - オブジェクト型のプロパティをすべて省略可能にする
- 5-5 型演算活用事例 - ルーティングパスの文字列型からパラメータを取り出す型関数ParamsOf<S>
第6章 モジュールシステム
- 6-1 importで拡張子なし
- 6-2 importで拡張子に.mjs
- 6-3 importで拡張子に.mts