JavaScriptプログラマーのためのTypeScript厳選ガイド〜JavaScriptプロジェクトを型安全で堅牢にする書き方を理解する
2024年11月9日紙版発売
藤吾郎 著
A5判/144ページ
定価2,640円(本体2,400円+税10%)
ISBN 978-4-297-14577-4
書籍の概要
この本の概要
本書は,TypeScriptの入門書です。TypeScriptは,JavaScriptに静的型を追加したプログラミング言語です。TypeScriptの構文はJavaScriptの構文のほとんどをそのまま利用しており,ほとんどそのままJavaScriptに変換して実行するため,JavaScriptと同等のことができます。そして,静的型付けは,正しく動作し,しかも読みやすいプログラムを書くための助けになります。
現在,私たちは「TypeScriptこそがモダンJavaScript」という新たな時代に立ち会っています。Webの発展とともにさまざまなWeb技術がJavaScriptの上に構築されていき,JavaScriptの適用範囲も広がりつつあります。その中でTypeScriptは,JavaScriptの代替言語として,その存在感を示しています。
本書では,TypeScriptを「すべてのJavaScriptプロジェクトにとって導入する価値のある,JavaScriptの一方言」と位置付けています。この「方言」とは,ここでは「JavaScriptの知識を100%活かせるが,表面的にはJavaScriptとは少しだけ異なる言語」という意味です。TypeScriptとJavaScriptの適用範囲はほとんど一致するからです。JavaScriptプロジェクトの実装言語としてTypeScriptを採用することで,生産性が向上し,より安定したソフトウェア開発を行えるでしょう。
第1章では,TypeScriptについて概念的な話をしています。第2章では,TypeScriptコンパイラの基本的な使い方を紹介しています。第3章はES2015+について,主にTypeScript的な文脈から解説をしています。続く第4章,第5章ではTypeScriptの型システムについて基礎から応用まで解説し,第6章ではモジュールについて簡潔に触れます。
本書はすでにある程度JavaScriptに習熟したプログラマーを対象にしています。また,bashなどの基本的なコマンドラインインターフェイスや,gitとGitHubについても最低限の知識はあるものとします。最初から通読することを念頭に置いて章を立てていますが,TypeScriptの知識が少しある場合や,JavaScriptについて熟知している場合は,第4章と第5章を集中的に読むのでもよいでしょう。
こんな方におすすめ
- JavaScriptを仕事で使っているが,これからTypeScriptを現場で使いこなせるようになりたい方
本書のサンプル
本書の一部ページを,PDFで確認することができます。
- サンプルPDFファイル(10,537KB)
目次
第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