レシピ集 TypeScriptコードレシピ集

「TypeScriptコードレシピ集」のカバー画像
著者
鹿野壮 著
定価
3,300円(本体3,000円+税10%)
発売日
2026.5.28
判型
A5
頁数
640ページ
ISBN
978-4-297-15628-2 978-4-297-15629-9

概要

TypeScriptで「やりたいこと」を逆引きできるレシピ集の決定版。

初級から中級レベルの方に向けて、現場でコードを書くためのテクニックを、豊富な事例とともにまとめました。

satisfies演算子や型述語の推論などTypeScriptの新機能、JavaScriptの新しいAPIにも対応。静的型付けや型推論の基礎から、データ型、関数、非同期処理、エラーハンドリング、クラス、モジュール、型の絞り込みやユーティリティ型まで、カテゴリ別に整理しています。

TypeScript 7対応、サンプルコード付き。

こんな方にオススメ

  • TypeScript初心者~初級者。入門書を卒業したレベル。
  • JavaScript/TypeScriptの駆け出しエンジニア。

目次

Chapter1 JavaScriptとTypeScriptの基礎

  • 001 JavaScriptについて知りたい
  • 002 TypeScriptについて知りたい
  • 003 JavaScriptの基本的な書き方と実行方法を知りたい
  • 004 TypeScriptをオンラインで手軽に試したい
  • 005 TypeScriptの環境構築の方法について知りたい
  • 006 JavaScriptとTypeScriptの型の扱い方の違いについて知りたい
  • 007 JavaScriptとTypeScriptの実行環境の違いについて知りたい
  • 008 TypeScriptのネイティブコンパイラーについて知りたい

Chapter2 基本構文

  • 009 プログラムの値をログで確認したい
  • 010 定数を使いたい
  • 011 変数を使いたい
  • 012 変数や定数の有効範囲について知りたい
  • 013 プログラムに対してコメントを書きたい
  • 014 条件に応じて処理を分けたい
  • 015 三項演算子で条件に応じて異なる値を取得したい
  • 016 switchで条件に応じて異なる値を取得したい
  • 017 処理を繰り返したい
  • 018 インデックスを使って繰り返し処理をしたい
  • 019 条件を満たす場合だけ処理を繰り返したい
  • 020 繰り返し処理を一部分だけスキップしたい
  • 021 繰り返し処理を途中で抜けたい
  • 022 nullまたはundefinedの場合にデフォルト値を設定したい
  • 023 null/undefinedになり得る値に安全にアクセスしたい
  • 024 trueやfalseとみなされる値と、&&、||、??演算子の違いについて知りたい
  • 025 値の状態に応じて代入したい

Chapter3 型システム

  • 026 型を明示したい
  • 027 型が何かを推論させたい
  • 028 型に名前を付けたい
  • 029 ユニオン型で複数の型のいずれかを表現したい
  • 030 値そのものしか代入できない「リテラル型」を作りたい
  • 031 複数の型の条件をすべて満たす型を作りたい
  • 032 インターフェースで型を定義したい
  • 033 インターフェースを拡張したい
  • 034 型定義のtypeとinterfaceの違いを知りたい
  • 035 型を後から指定して、さまざまな型に対応する関数やクラスを作りたい
  • 036 ジェネリクスを複数使いたい
  • 037 ジェネリクスの初期値を定義したい
  • 038 ジェネリクスの指定できる型に制限を設けたい
  • 039 関数にジェネリクスを使いたい
  • 040 プロトタイプとプロトタイプチェーンを理解したい

Chapter4 データ型

  • 041 プリミティブな「データ型」について知りたい
  • 042 数値をJavaScriptやTypeScriptで表現したい
  • 043 数値演算を行いたい
  • 044 ランダムな数値を使いたい
  • 045 数の切り捨て・切り上げ・四捨五入を使いたい
  • 046 数値の最大値・最小値を取り扱いたい
  • 047 2の53乗以上の大きな数値を取り扱いたい
  • 048 文字列を表現したい
  • 049 複数の文字列を連結したい
  • 050 文字列を検索したい
  • 051 文字列を取り出したい
  • 052 文字列を置き換えたい
  • 053 データが存在しないときの「null」を取り扱いたい
  • 054 データが未定義のときの値「undefined」を使いたい
  • 055 真偽値を扱いたい
  • 056 一意なプロパティキーを作りたい
  • 057 ++や+=などの省略演算子を使いたい
  • 058 絵文字を崩さずに文字数を数えたい
  • 059 WebCryptoAPIで安全な乱数やキーを生成したい

Chapter5 配列・オブジェクト

  • 060 配列に型注釈をしたい
  • 061 配列操作におけるコールバック関数の内容について知りたい
  • 062 配列から別の配列を作りたい
  • 063 配列を条件によって絞り込みたい
  • 064 配列をフラット化したい
  • 065 配列の要素を検索したい
  • 066 要素が含まれているかどうかを調べたい
  • 067 配列の要素が条件に合致するかどうかを調べたい
  • 068 配列の要素を集約したい
  • 069 配列の要素を並び替えたり、逆順にしたい
  • 070 配列の要素を追加・削除したい
  • 071 配列の要素を置換したい
  • 072 TypeScriptでオブジェクトを表現したい
  • 073 オブジェクトのプロパティを省略可能にしたい
  • 074 オブジェクトのキー・値・ペアを取得したい
  • 075 配列やオブジェクトをコピー・更新・結合したい
  • 076 配列やオブジェクトをディープコピーしたい
  • 077 繰り返し処理が可能な「イテラブルなオブジェクト」を使いたい

Chapter6 関数

  • 078 関数について知りたい
  • 079 functionキーワードで関数を扱いたい
  • 080 「アロー関数」を使って関数を定義したい
  • 081 オブジェクトのメソッドを使いたい
  • 082 アロー関数とfunctionの違いを知りたい
  • 083 関数の引数を省略したい
  • 084 引数の初期値を指定したい
  • 085 関数に任意の数の引数を渡したい
  • 086 関数に型を付けたい
  • 087 関数オーバーロードで引数と戻り値の型の組み合わせを複数作りたい
  • 088 関数の引数で分割代入したい
  • 089 Generator関数を使いたい

Chapter7 高度な型システム

  • 090 unknown型で何でも入れられる型安全な変数を作りたい
  • 091 try...catchのcatchエラーオブジェクトを型安全に扱いたい
  • 092 any型と、その使用を制限する方法を知りたい
  • 093 値を何も返さないvoid型について知りたい
  • 094 固定長の配列「タプル型」を取り扱いたい
  • 095 特定のパターンを持つstring型を定義したい
  • 096 文字列リテラル型の大文字・小文字を変換したい
  • 097 プロパティや配列の要素を読み取り専用にしたい

Chapter8 非同期処理

  • 098 一定時間後・一定間隔で処理を行いたい
  • 099 Promiseで非同期処理を扱いたい
  • 100 データをフェッチしてレスポンスを処理したい
  • 101 Promiseやfetchで直列処理をしたい
  • 102 Promiseやfetchで並行処理をしたい
  • 103 Promiseやfetchで扱う値の型を明示したい
  • 104 非同期通信をする関数を作りたい
  • 105 fetchで取得したデータの型を実行時に保証したい
  • 106 トップレベルでawaitを使いたい
  • 107 非同期処理を途中でキャンセルしたい
  • 108 Promiseを外部から制御したい

Chapter9 型の絞り込みと高度な型操作

  • 109 typeofで型の絞り込みをしたい
  • 110 instanceofで型の絞り込みをしたい
  • 111 inで型の絞り込みをしたい
  • 112 オブジェクトの共通のプロパティで絞り込みをしたい
  • 113 型の絞り込み関数を作りたい
  • 114 ランタイム検証と型の絞り込みを両立させたい
  • 115 型述語を推論させたい
  • 116 値の型の拡大(widening)を防ぎたい
  • 117 オブジェクトの型推論結果を保持しつつ型チェックをしたい
  • 118 条件付き型で一致しない型を無効化したい
  • 119 inferキーワードで型を抽出したい
  • 120 オブジェクトのキーを型として扱いたい
  • 121 配列やオブジェクトの要素の型を取得したい
  • 122 定義済みの値から型を抽出したい
  • 123 ジェネリクスで特定のオブジェクト型のプロパティに安全にアクセスしたい
  • 124 satisfies演算子で値が型に合うか確認したい
  • 125 型の条件分岐を行いたい
  • 126 IDなどの文字列を種類別に型安全に扱いたい
  • 127 関数の引数の拡大(widening)を防ぎたい

Chapter10 ユーティリティ型

  • 128 キーKと値Tを持つオブジェクトを生成したい
  • 129 プロパティを省略可能/必須に変換したい
  • 130 型からプロパティを取り出し/除外したい
  • 131 ユニオン型からメンバーを除外/抽出したい
  • 132 T型からnullとundefinedを削除した型を生成したい
  • 133 関数の戻り値・引数の型を取得したい
  • 134 T型を推論させないようにしたい
  • 135 クラスのコンストラクター引数型とインスタンス型を取得したい
  • 136 Promiseで扱っている値の型だけを抽出したい

Chapter11 エラーハンドリング

  • 137 実行時エラー(ランタイムエラー)について知りたい
  • 138 標準エラーオブジェクトについて知りたい
  • 139 任意のタイミングでエラーを発生させたい(投げたい)
  • 140 エラーをキャッチし、エラーの内容に応じて処理を続行したい
  • 141 専用のエラーを作成して判別しやすくしたい
  • 142 エラーを連結して原因を追跡したい

Chapter12 クラス

  • 143 クラスを使いたい
  • 144 クラス内で自身のメンバーにアクセスしたい
  • 145 クラスの継承をしたい
  • 146 親クラスのメソッドを拡張したい
  • 147 継承専用のクラスを作りたい
  • 148 静的なメンバーを定義したい
  • 149 プロパティやメソッドの公開範囲を制御したい
  • 150 ECMAScriptの機能を使って、クラスのメンバーにアクセス制御したい
  • 151 instanceofよりも安全にインスタンスかどうかの確認がしたい
  • 152 getter、setter、accessorを使いたい

Chapter13 モジュール

  • 153 モジュールについて知りたい
  • 154 変数や関数を他のモジュールで使えるようにexportしたい
  • 155 他のモジュールの変数や関数をimportしたい
  • 156 デフォルトエクスポートを使って主要な値をエクスポートしたい
  • 157 型だけをexport、importしたい
  • 158 importでパスを指定したい
  • 159 動的にモジュールをimportしたい
  • 160 JSONをECMAScript標準の形式でimportしたい
  • 161 ブラウザでもNode.jsでもグローバルオブジェクトを参照したい

Chapter14 TypeScript設定

  • 162 TypeScriptの設定ファイルtsconfig.jsonについて知りたい
  • 163 compilerOptionsの設定を知りたい
  • 164 tsconfig.jsonの設定を継承したい
  • 165 コンパイル対象とAPIライブラリを設定したい
  • 166 ソースマップを有効にしたい
  • 167 厳格な型チェックを有効にしたい
  • 168 未使用のローカル変数を許可したくない
  • 169 関数で未使用の引数を許可したくない
  • 170 関数での戻り値を必ず明示したい
  • 171 オプショナルプロパティでundefinedを代入不可能にしたい
  • 172 switch文でbreakやreturnを必須にしたい
  • 173 明示されていないプロパティへのドット記法アクセスを禁止したい
  • 174 存在しない可能性がある配列のインデックスアクセスを型安全にしたい
  • 175 モジュール解決と出力形式を設定したい
  • 176 クラスフィールドがオーバーライドされている場合、override修飾子を強制したい
  • 177 Node.jsでTypeScriptを実行するとき、削除不可能構文をエラーにしたい
  • INDEX