副題は「安全なコードの書き方から高度な型の使い方まで」。
p.14 のコラム 1 は「TypeScriptの “独自機能” は避けるべき?」という題である。著者は最後に、
少なくとも新規の TypeScript コードでこれらの機能を使う必要はないと考えても問題はないでしょう。
といっている。具体的には、これらの機能は enum や namespace などの独自機能である。何に対しての独自性かというと、これは依拠する JavaScript に対する独自性、
という意味である。つまり、TypeScript は JavaScript + 型 の言語であることから、型以外の仕様は極力 JavaScript に倣うという方針であるにもかかわらず、
enum や namespace は現在にいたるまで JavaScript の仕様にはない。独自機能の使用を避けるべき理由については本書を参照されたい。
さて、enum や namespace で思い出すのは、C 言語や C++ 言語である。C 言語では比較的早く enum が導入されたし、C++ 言語の namespace 機能は好ましいと感じられた。
それらが使えないというのは悲しい。
著者はこのコラムで幸い、本書で紹介する内容を理解すれば、これらの独自機能に頼る必要はありません。
と断言している。ではいったい、enum や namespace に頼らずに、どんな機能を使えばいいのだろう。その答は本書には書かれていない。
それはあたりまえで、enum や namespace の機能が本書では説明されていないからだ。以下は、私が調べた範囲の答だ。
TypeScript については、下記を参考にした。
https://www.typescriptlang.org/ja/
まず、enum について述べる。enum は複数の値の中から一つの値を選ぶときに使う。では、 と思って https://www.typescriptlang.org/docs/handbook/enums.html を見てみると、 as const つきオブジェクトを使えば、enum を使う必要はない、と書かれている。 本書では 6.5.2 で「as const の用法」が述べられている。ここだったのか。
次に namespace だ。WEB の情報から察するに、モジュールシステムを使えばいい、ということのようだ。具体的には、 インポートとエクスポートの仕組みを使えばよい。
付録 2 は「さらなる学習の道しるべ」として、気になったものを調べてみましょう。各テーマごとに上のほうが活用機械が比較的多そうなものになっています。
として、次の項目が紹介されている。
JavaScript の言語機能
- イテレータ・ジェネレータ関数
- メタプログラミング系の機能
- オブジェクト操作(Object.keys)など
- プロパティでスクリプタ・プロパティ属性
- Reflect・Proxy
- シンボル
- prototype
TypeScript の言語機能
- 標準ライブラリに属するほかの型(Record・Parameters・Awaited など)
- abstruct クラス・abstruct new シグネチャ
- 型レベルプログラミング
- mapped types・conditional types の詳細(infer・union distribution・homomorphic mapped types など)
TypeScript が使用される開発環境
- フロントエンド開発(ブラウザで動く JavaScript)
- DOM (Document Object Model)
- 各種の UI ライブラリ(React・Vue・Angular など)
- 開発ツール(webpack・Vite など)
- サーバ開発
- Node.js と Node.js 上で動くライブラリ
- Deno
この本で解説されていないことが列挙されているのはありがたい。このうち、各種 UI ライブラリそのものについては、 それぞれに関して成書が多く出版されているから、活用機会もあるだろう。
書名 | プロを目指す人のための TypeScript 入門 |
著者 | 鈴木僚太 |
発行日 | 2022 年 5 月 5 日 初版第1刷 |
発行元 | 技術評論社 |
定価 | 2980 円 |
サイズ | A4 変形判 |
ISBN | 978-4-297-12747-3 |
その他 | 越谷市立図書館で借りて読む |
まりんきょ学問所 > コンピュータについて > コンピュータの本 > JavaScript, altJS > 鈴木僚太:プロを目指す人のための TypeScript 入門