[書評]実践TypeScript-BFFとNext.js&Nuxt.jsの型定義-

書籍情報

タイトル : 実践TypeScript-BFFとNext.js&Nuxt.jsの型定義-

著者 : 吉井健文

出版社 : マイナビ出版

発売日 : 2019/6/26

書籍サイズ : 単行本(大) - 横18.4cm x 縦23.6cm

概要

TypeScriptは型システムを有することが特徴ですが、実はその知識がほとんどなくてもプログラミングをすることは可能です。本書では、「TypeScriptの型システム」と「実践的な活用」に分けて、それぞれ詳細に解説しています。第1部―型についての知識がゼロの状態から高度な型定義を習得するまで、必要となる知識を体系的に解説。第2部―Next.js/Nuxt.jsといったフレームワークにTypeScriptをどのように導入し、どのように型システムを活用すればよいのかを詳細に解説。

書籍タイトルの通り、実践向きのTypeScript参考書となります。

前半は基礎的な内容(導入や型について)、後半は実践(各種フレームワークとTypeScript)の構成となっています。

レベルとしてはやや難しめで、JavaScript(フレームワークなど)の経験者がTypeScriptを覚えるための書籍といったところです。

目次

  1. 導入編
  2. 開発環境と設定
    1. TypeScriptの開発環境
    2. tscコマンドではじめよう
    3. ビルドツール各種と設定
  3. TypeScriptの基礎
    1. 意図しないNaNを防ぐ
    2. 基本の型
    3. 高度な型
    4. typeofキーワードとkeyofキーワード
    5. アサーション
    6. クラス
    7. 列挙型
  4. TypeScriptの型推論
    1. const / letの型推論
    2. Array / Tupleの型推論
    3. objectの型推論
    4. 関数の戻り型推論
    5. Promiseの型推論
    6. import構文の型推論
    7. JSONの型推論
  5. TypeScriptの型安全
    1. 制約による型安全
    2. 抽象度による型安全
    3. 絞り込みによる型安全
  6. TypeScriptの型システム
    1. 型の互換性
    2. 宣言の結合
  7. TypeScriptの高度な型
    1. Generics
    2. Conditional Types
    3. Utility Types
  8. 実践編
  9. ReactとTypeScript
    1. ReactでTypeScriptを使う利点
    2. React Hooksと型
    3. Reducerの型定義
  10. Vue.jsとTypeScript
    1. Vue.extendベースの開発
    2. vue-class-componentベースの開発
    3. Vuexの型推論を探求する
  11. ExressとTypeScript
    1. TypeScriptで開発するExpress
    2. セッションの型定義
    3. Request・Responseの型を拡張する
  12. Next.jsとTypeScript
    1. TypeScriptではじめるNext.js
    2. Reduxを導入する
    3. Next.jsとExpress
  13. Nuxt.jsとTypeScript
    1. TypeScriptではじめるNuxt.js
    2. Vuexの型課題を解決する
    3. Nuxt.jsとExpress
  14. Index

感想

基礎的な内容から説明されていますが、JavaScript経験者が読者と想定されているようで、JavaScriptからの移行やフレームワーク(Vue.js, Reactなど)とTypeScriptを併せた使い方などがメインとなります。

JavaScriptをあまり触ったことがないという方は理解するのに苦労する内容になるかと思います。

ただ基礎的な内容でも踏み込んだところまで解説されているので、ある程度JavaScriptを経験されてる方でしたら満足する内容になっています。

個人的には実践編のVue.jsの項目で、vue-class-componentの解説がされているのがとても有難かったです。 この本を読んでいたときにちょうどNuxt.jsのClass APIを利用しているプロジェクトにアサインされていたため参考にしながら作業できました。