無限大な夢のあと

テニスとアニメが大好きな厨二病SEのブログ

速習TypeScript 書評 -WINGSプロジェクト( @yyamada ) 

WINGSプロジェクトの書籍レビュアーに応募し、献本してもらったので、書評を書きました。

今回は表題にある通り「速習TypeScript」の書評となります。

速習TypeScript: altJSのデファクトスタンダートを素早く学ぶ! 速習シリーズ

速習TypeScript: altJSのデファクトスタンダートを素早く学ぶ! 速習シリーズ

前提として、私自身は業務ではJavaScript(ECMAScript2015)で開発は行っておりますが、TypeScriptでは行ったことはなく、2-3年前に軽く書籍を読んで遊びで書いたくらいです。
今回、業務で実際にTypeScriptを使っているモジュールがあるため、改めて勉強が必要だと思い、レビューアーに応募させて頂きました。

下記、レビュー内容となります。

一言で言うと、「速習TypeScript」という名がふさわしい、要点を抑えつつ100ページ超にコンパクトに内容がまとまっている書籍でした。
本書籍ではインストール方法や文法の紹介にとどまらず、以下のような点まで紹介がありました。

  • Playgroundはもちろんのこと、TypeSearchやVisual Studio Codeなどの便利なツールの紹介
  • コンパイルオプションなどを指定できるtsconfig.jsonの簡易リファレンス
  • アロー関数と関数リテラルのthisの扱いが異なるなどの実際に使ってみるとつまづくポイント

tsconfig.jsonの簡易リファレンスの一部 f:id:noimpslmtbrk:20170703181454p:plain


TypeScriptを使い始めるにあたって、ツールやコンパイルオプションなどの紹介だけでもかなり便利ですが、つまづきポイントまで記載があるのは細部にこだわっていてとても親切だと思いました。
また、書籍自体がコンパクトなのにも関わらず、文法の説明が細かい点もセールスポイントです。

全体的にECMAScript2015とTypeScriptとの比較から説明されていることが多く、Symbol型の存在などECMAScript2015についても理解が深まりました。
また、TypeScriptでは以下のような文法/機能が使えるというのが今回書籍を読んでみて自分にとって参考になった点です。

  • 変数内への文字列埋め込み
  • 文字列リテラル
  • タプル
  • 共用型
  • エイリアス
  • null非許容型
  • 型ガード
  • abstract
  • interface
  • 構造的部分型
  • 交差型

また、これらについては、普段業務で使っているScalaやSwiftで使っていないものについては名前だけではわからなかったのですが、
実際に具体例を用いて説明があるので、非常に理解の助けになりました。

まとめますと、この書籍一冊でTypeScript入門はもちろんのこと、TypeScriptを既に知っている方も知識の確認ができるので、非常にオススメです。

最後に、目次の内容も転載致します。

【目次】
Part1:はじめに
 JavaScriptの代替言語 - TypeScript
  主なaltJS
  TypeScriptの主な特徴
  (1)開発環境が豊富である
  (2)JavaScriptのスーパーセットである
  (3)ECMAScript 2015の仕様にいち早く準拠
 TypeScript学習の準備
  TypeScript Playground
  コマンドラインからの実行
  [1]Node.jsをインストールする
  [2]TypeScriptをインストールする
  [3]TypeScriptでコンパイルを実行する
 対象読者
Part2:変数/データ型
 変数 - let/var命令
  型を伴う変数宣言
  リテラル表現
  (1)数値リテラル
  (2)文字列リテラル
  データ型を明示的に変換する「型アサーション
  補足:var/let命令の違い
  (1)ブロックスコープに対応したlet命令
  (2)変数の重複を認めない
 定数を宣言する - const命令
 配列・連想配列・列挙体・タプル
  基本的な値の集合を表す - 配列
  補足:Arrayコンストラクターは使わない
  文字列キーで管理する配列 - 連想配列
  連想配列を利用する場合の注意
  関係する定数を束ねる列挙型
  複数の型が混在したタプル型
 高度な型
  共用型
  型エイリアス
  文字列リテラル
  null非許容型
  型定義ファイル
  [1]型定義ファイルをインストールする
  [2]インストールされた型定義ファイルを確認する
  [3]jQueryを含んだコードをコンパイルする
Part3:関数
 関数の基本構文
  function命令による関数の宣言
  関数リテラルによる宣言
  アロー関数(ラムダ式)による宣言
  アロー関数はthisを固定する
 関数のさまざまな表現
  省略可能な引数を宣言する
  引数にデフォルト値を設定する
  (1)任意引数のうしろに必須引数は配置できない
  (2)デフォルト値には式も指定できる
  (3)引数にundefinedを指定した場合
  不特定多数の引数を表現する - 可変長引数
 関数のオーバーロード
  引数/戻り値型としての共用型
  型ガード
Part4:オブジェクト指向構文
 クラスの基本
  クラスを定義する - class命令
  クラスの内外からのアクセスを制御する - アクセス修飾子
  コンストラクターとプロパティ設定
  getter/setterアクセサー
  (1)読み書きを制御できる
  (2)値チェック/戻り値の加工などが可能
  静的メンバー
  名前空間
  階層的な名前空間
 継承/実装
  継承の基本
  メソッドのオーバーライド
  抽象メソッド
  インターフェイス
  インターフェイスの例
  インターフェイスを継承することも
  補足:構造的部分型
  型注釈としてのインターフェイス
  補足:オブジェクト型リテラル
  型としてのthis
 ジェネリック(総称型)
  ジェネリック型の定義
  型引数の制約
  ジェネリックメソッド
  例:オブジェクトのマージ
Appendix:その他
 Visual Studio Codeによる開発
  VSCodeの使い方
  [1]VSCodeをインストールする
  [2]プロジェクトフォルダーを開く
  [3]tsconfig.jsonを準備する
  [4]TypeScriptコードを準備する
  [5].tsファイルをコンパイル/実行する
  [6]コンパイル済みのコードを実行する
 tsconfig.json簡易リファレンス
書籍情報
 著者プロフィール
 基本情報
 サポートサイト

以上、レビューとさせて頂きます。

JavaScript 第6版

JavaScript 第6版

開眼!  JavaScript ―言語仕様から学ぶJavaScriptの本質

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質

パーフェクトJavaScript (PERFECT SERIES 4)

パーフェクトJavaScript (PERFECT SERIES 4)