TypeScriptの本格的な入門書。TypeScriptは、世界で最もよく使われ、かつ最も好まれているプログラミング言語の1つです。本書では、JavaScriptの基礎的な知識のあるプログラマーを対象に、「型」や「型システム」の基本から、明快かつ包括的にTypeScriptを解説します。TypeScriptはバグやタイプミスを防ぎ、コードを読みやすくするのに有用なだけでなく、JavaScriptがどのように動くべきかを宣言し、それを維持するのに役立つ優れたシステムです。読者は本書を読むことで、TypeScriptの基礎と最も重要な機能をマスターできるでしょう。
初めてのTypeScript
―型安全なJavaScriptでWeb開発を加速する
Josh Goldberg 著、今村 謙士 監訳、原 隆文 訳
- TOPICS
- Programming , JavaScript
- 発行年月日
- 2023年06月
- PRINT LENGTH
- 336
- ISBN
- 978-4-8144-0036-2
- 原書
- Learning TypeScript
- FORMAT
- Print PDF EPUB
関連ファイル
目次
賞賛の声 監訳者まえがき まえがき 第I部 TypeScriptの概念 1章 JavaScriptからTypeScriptへ 1.1 JavaScriptの歴史 1.2 バニラJavaScriptの欠陥 1.2.1 コストのかかる自由 1.2.2 規律のないドキュメンテーション 1.2.3 開発者用ツールの弱さ 1.3 TypeScript! 1.4 TypeScript Playgroundでコードを書いてみる 1.4.1 実践TypeScript 1.4.2 制限による自由 1.4.3 正確なドキュメンテーション 1.4.4 強力な開発者用ツール 1.4.5 構文のコンパイル 1.5 ローカルでTypeScriptを始める 1.5.1 ローカルで実行する 1.5.2 エディターのさまざまな機能 1.6 TypeScriptに対する誤解 1.6.1 悪いコードの改善策である 1.6.2 (大部分が)JavaScriptの拡張である 1.6.3 JavaScriptよりも遅い 1.6.4 進化が終わった 1.7 まとめ 2章 型システム 2.1 型とは何か? 2.1.1 TypeScriptの型システム 2.1.2 エラーの種類 2.2 割り当て可能性 2.2.1 割り当て可能性エラーの理解 2.3 型アノテーション 2.3.1 不必要な型アノテーション 2.4 型の形状 2.4.1 モジュール 2.5 まとめ 3章 合併型とリテラル型 3.1 合併型 3.1.1 合併型の宣言 3.1.2 合併型のプロパティ 3.2 型の絞り込み 3.2.1 割り当てによる絞り込み 3.2.2 条件チェック 3.2.3 typeofチェック 3.3 リテラル型 3.3.1 リテラル型の割り当て可能性 3.4 厳格なnullチェック 3.4.1 10億ドルの過ち 3.4.2 真値性による絞り込み 3.4.3 初期値を持たない変数 3.5 型エイリアス 3.5.1 型エイリアスはJavaScriptではない 3.5.2 型エイリアスを組み合わせる 3.6 まとめ 4章 オブジェクト 4.1 オブジェクト型 4.1.1 オブジェクト型の宣言 4.1.2 オブジェクト型エイリアス 4.2 構造的型付け 4.2.1 使われ方のチェック 4.2.2 過剰プロパティチェック 4.2.3 ネストされたオブジェクト型 4.2.4 オプションプロパティ 4.3 オブジェクト型の合併型 4.3.1 オブジェクト型の合併型の推論 4.3.2 オブジェクト型の合併型の明示的型付け 4.3.3 オブジェクト型の絞り込み 4.3.4 タグ付き合併型 4.4 交差型 4.4.1 交差型の危険性 4.5 まとめ 第II部 TypeScriptの機能 5章 関数 5.1 関数のパラメーター 5.1.1 必須パラメーター 5.1.2 オプションパラメーター 5.1.3 デフォルトパラメーター 5.1.4 レストパラメーター 5.2 戻り値の型 5.2.1 明示的な戻り値の型 5.3 関数の型 5.3.1 関数の型と括弧 5.3.2 パラメーターの型推論 5.3.3 関数型エイリアス 5.4 その他の戻り値の型 5.4.1 void 5.4.2 never 5.5 関数のオーバーロード 5.5.1 呼び出しシグネチャの互換性 5.6 まとめ 6章 配列 6.1 配列型 6.1.1 配列型と関数型 6.1.2 合併型の配列 6.1.3 進化するany型の配列 6.1.4 多次元配列 6.2 配列のメンバー 6.2.1 注意事項:不安定なメンバー 6.3 スプレッド演算子とレストパラメーター 6.3.1 スプレッド演算子 6.3.2 レストパラメーターへの展開 6.4 タプル 6.4.1 タプルの割り当て可能性 6.4.2 タプルの型推論 6.5 まとめ 7章 インターフェース 7.1 型エイリアスvs.インターフェース 7.2 プロパティの種類 7.2.1 オプションプロパティ 7.2.2 読み取り専用プロパティ 7.2.3 関数とメソッド 7.2.4 呼び出しシグネチャ 7.2.5 インデックスシグネチャ 7.2.6 ネストされたインターフェース 7.3 インターフェースの拡張 7.3.1 オーバーライドされたプロパティ 7.3.2 複数インターフェースの拡張 7.4 インターフェースのマージ 7.4.1 メンバー名の競合 7.5 まとめ 8章 クラス 8.1 クラスメソッド 8.2 クラスプロパティ 8.2.1 関数プロパティ 8.2.2 初期化チェック 8.2.3 オプションプロパティ 8.2.4 読み取り専用プロパティ 8.3 型としてのクラス 8.4 クラスとインターフェース 8.4.1 複数インターフェースの実装 8.5 クラスの拡張 8.5.1 クラス拡張の割り当て可能性 8.5.2 オーバーライドされたコンストラクター 8.5.3 オーバーライドされたメソッド 8.5.4 オーバーライドされたプロパティ 8.6 抽象クラス 8.7 メンバーの可視性 8.7.1 静的フィールド修飾子 8.8 まとめ 9章 型修飾子 9.1 トップ型 9.1.1 再びany 9.1.2 unknown 9.2 型述語 9.3 型演算子 9.3.1 keyof 9.3.2 typeof 9.4 型アサーション 9.4.1 キャッチされるエラーの型アサーション 9.4.2 非nullアサーション 9.4.3 型アサーションの注意事項 9.5 constアサーション 9.5.1 リテラルとプリミティブ型 9.5.2 読み取り専用オブジェクト 9.6 まとめ 10章 ジェネリック 10.1 ジェネリック関数 10.1.1 明示的なジェネリック呼び出しの型 10.1.2 関数の複数の型パラメーター 10.2 ジェネリックインターフェース 10.2.1 ジェネリックインターフェースの型引数の推論 10.3 ジェネリッククラス 10.3.1 明示的なジェネリッククラスの型 10.3.2 ジェネリッククラスの拡張 10.3.3 ジェネリックインターフェースの実装 10.3.4 メソッドのジェネリック 10.3.5 クラスの静的メンバーのジェネリック 10.4 ジェネリック型エイリアス 10.4.1 ジェネリックなタグ付き合併型 10.5 ジェネリック修飾子 10.5.1 ジェネリックのデフォルト型 10.6 制約付きジェネリック型 10.6.1 keyofと制約付き型パラメーター 10.7 Promise 10.7.1 Promiseの作成 10.7.2 async関数 10.8 ジェネリックを適切に使う 10.8.1 ジェネリックの黄金律 10.8.2 ジェネリックの命名規則 10.9 まとめ 第III部 TypeScriptの使用 11章 宣言ファイル 11.1 宣言ファイル(.d.ts) 11.2 ランタイム値の宣言 11.2.1 グローバルな値 11.2.2 グローバルなインターフェースのマージ 11.2.3 グローバルな拡張 11.3 組み込み宣言 11.3.1 ライブラリー宣言 11.3.2 DOM宣言 11.4 モジュール宣言 11.4.1 ワイルドカードモジュール宣言 11.5 パッケージの型 11.5.1 declaration 11.5.2 依存パッケージの型 11.5.3 パッケージの型を公開する 11.6 DefinitelyTyped 11.6.1 型の入手可能性 11.7 まとめ 12章 IDE機能の使用 12.1 コード内の移動 12.1.1 定義の検索 12.1.2 参照箇所の検索 12.1.3 実装の検索 12.2 コードの記述 12.2.1 名前の補完 12.2.2 インポートの自動的な更新 12.2.3 コードアクション 12.3 エラーを効率よく処理する 12.3.1 言語サービスのエラー 12.4 まとめ 13章 構成オプション 13.1 tscのオプション 13.1.1 prettyモード 13.1.2 監視モード 13.2 TSConfigファイル 13.2.1 tsc --init 13.2.2 CLIvs.構成ファイル 13.3 ファイルのインクルード 13.3.1 include 13.3.2 exclude 13.4 代替拡張機能 13.4.1 JSX構文 13.4.2 resolveJsonModule 13.5 JavaScriptファイルの出力 13.5.1 outDir 13.5.2 target 13.5.3 宣言ファイルの出力 13.5.4 ソースマップ 13.5.5 noEmit 13.6 型チェック 13.6.1 lib 13.6.2 skipLibCheck 13.6.3 strictモード 13.7 モジュール 13.7.1 module 13.7.2 moduleResolution 13.7.3 CommonJSとの相互運用性 13.7.4 isolatedModules 13.8 JavaScript 13.8.1 allowJs 13.8.2 checkJs 13.8.3 JSDocのサポート 13.9 構成ファイルの拡張 13.9.1 extends 13.9.2 構成ベース 13.10 プロジェクト参照 13.10.1 composite 13.10.2 references 13.10.3 ビルドモード 13.11 まとめ 第IV部 課外講義 14章 構文の拡張 14.1 クラスのパラメータープロパティ 14.2 実験的なデコレーター 14.3 enum(列挙型) 14.3.1 自動的な数値 14.3.2 文字列値のenum 14.3.3 const enum(定数列挙型) 14.4 名前空間 14.4.1 名前空間エクスポート 14.4.2 ネストされた名前空間 14.4.3 型定義における名前空間 14.4.4 名前空間よりもモジュールを 14.5 型のみのインポートとエクスポート 14.6 まとめ 15章 型演算 15.1 マップ型 15.1.1 別の型に基づくマップ型 15.1.2 修飾子の変更 15.1.3 ジェネリックマップ型 15.2 条件型 15.2.1 ジェネリック条件型 15.2.2 型の分配法則 15.2.3 inferによる型情報の取得 15.2.4 マップ条件型 15.3 never 15.3.1 neverと交差型と合併型 15.3.2 neverと条件型 15.3.3 neverとマップ型 15.4 テンプレートリテラル型 15.4.1 組み込み文字列操作型 15.4.2 テンプレートリテラルキー 15.4.3 マップ型のキーの再マッピング 15.5 型演算と複雑さ 15.6 まとめ 用語集 索引