「プロを目指す人のための TypeScript 入門」で基本から学びなおした
「プロを目指す人のための TypeScript 入門」を読了したので、読了した感想を書いていきます。
読み始めたきっかけ
Twitter で話題になっていたのもありましたが、自分自身、2022年5月に転職した先が TypeScript をメイン言語の一つとして採用していたのが大きいです。
転職前から NodeCG やら React・Next.js などで TypeScript は使っていましたが、業務で本格的に(特にサーバサイドで)使うことがなかったので、今一度自分の理解を確認するために読んでみることにしました。これまで体系的に学ぶ機会もなかったので、知識の穴を埋められればと思っていました。
こんな人に勧めたい
いきなりですが、読み終えて感じた「こんな人に読んでもらいたい」をまとめます。
- プログラミング入門者。どの言語もちゃんと勉強したことがない人。
- TypeScript の導入に悩んでいる、これから使おうとしている人。
- 以前(3年以上前くらいに)勉強したきり、知識がアップデートできていないと感じている人。
- TypeScript は使えているが、一度しっかり学んでみたい人。
- 僕ですね
ECMAScript や TypeScript の歴史や型パズルのディープな例などはなく、あくまで基本をしっかり身に着けるための本という印象でした。
「プロを目指す人のための」はまさにそれで、業務で扱うための最低限の知識を備えることができると思いました。基本はこの本で身に着けられますが、実践的なところは業務や他の本で強化していく必要があります。
プログラミングの基本構文から学べる
TypeScript 本ではありますが、変数宣言、分岐や繰り返しなどのプログラミングの基本から始まります。
ページ数の都合か少しアッサリした説明になっている気もしますが、コード例もあるのでとりあえず動かして「なるほど」となることはできそうです。TypeScript と JavaScript が混同しないような配慮もされているのも安心感がありました。TypeScript という言語の立場が初学者からするとややこしいところはありますが、しっかり読んでいけばプログラミング入門としても十分使える本だと思います。
もちろん他の言語でプログラミング経験がある人も、TypeScript の仕様を理解する上で序盤の章は飛ばさず読んでほしいです。知ってる内容かもしれないですが、合間にあるコラムが退屈をしのいでくれます。
退屈しないコラム
合間のコラムでは少し掘り下げた話を書いてくれているのですが、これが豊富な内容で退屈しないのがよかったです(30個以上ありました)。逆にコラムの内容すら知ってるぜって人には本書は不向きかもしれないです。
TypeScript をある程度知っている人はコラムの方を読みながら、基本的な章はサクサク進めてしまってもいいかもしれません。
アップデートに合わせて取捨選択した内容
ECMAScript と兼ね合いや TypeScript 自体の発展の歴史的背景から、アップデートによって避けたほうがよい使い方があります。良く知られているものだと enum
とかでしょうか。
enum
ほどわかりやすいものはそもそも解説を省いてしまっていますし、細かいところも「昨今はこういう書き方が多い」「これは避けた方が良い」などアップデートを反映した内容になっています。
もちろん主張が強いわけではなく、個人の趣向や現場によるところはそのように配慮しています。 TypeScript が長い歴史でアップデートされてきた言語ということも、説明していますしね。
型表現についてもしっかり触れている
「高度な型」として章を設けて、TypeScript の豊富な型表現についても触れています。
一番型の恩恵を受けるのは開発時だと思うので、型付けのうまみがわからない方もコード例を写経して体感してみてほしいところです。
コード例もあるが、文章が多い印象
いいところだけでなく気になったところも少しだけ。基本的には説明+簡単なコード例で進み、説明のための文章が多い印象でした。
特に Promise
周りの説明が(そもそも概念的にややこしいというのはありそうですが)文章量が多く、ある程度わかっている状態で読めば理解できますが、初学者にとっては厳しいところもありそうです。
文章でしっくりこないところは、現場でより実践に近いコードを書いて理解を高めたり、必要に応じてググったりして補う必要があると思います。コードを書いて経験しつつ、理解できるまで読み直すような使い方がよさそうです。
まとめ
読んでいて気になったところは文章量くらいで、しっかりと基礎固めしてから実践の入口に立てる良本だと思いました。
入門者はもちろん、TypeScript をそこそこ使ってるくらいの方は一冊持っておくと安心かもしれないですね。
Discussion