https://github.com/type-challenges/type-challenges
type-challenges、easy問題の全13問を解き終えたので、一旦振り返りたいと思います。
各問題の振り返り
一言書こうと思ったのですが、終盤にいくにつれて特筆事項がなくなったので、ただの羅列です😅
:::details 各問題へのリンク
https://ikuma-t.work/posts/type-challenge-pick
キーワード:keyof
、Indexed Access Type
、Mapped Types
初見で無事ギブアップした回。最初は全くもって意味不明な記号でしたが今は見慣れました。
https://ikuma-t.work/posts/type-challenge-readonly
キーワード:Mapped types
、readonly
当日も自力で解けたと言っています。今回も解けました。
https://ikuma-t.work/posts/type-challenge-tuple-to-object
キーワード:Tuple
、Indexed Access Type
、`Mapped Types
ここらへんでMapped Types
に慣れてきました。
https://ikuma-t.work/posts/type-challenge-first-of-array
キーワード:infer
、Conditional Types
, Indexed Access Types
infer
キーワード初出。これも今はだいぶ見慣れてきました。
https://ikuma-t.work/posts/type-challenge-length-of-tuple
キーワード:Indexed Access Types
https://ikuma-t.work/posts/type-challenge-exclude
キーワード:Conditional Types
、Union Types
、Distributive
分配法則初登場回
https://ikuma-t.work/posts/type-challenge-awaited
キーワード:infer
再起的な型推論
https://ikuma-t.work/posts/type-challenge-if
キーワード: Conditional Types
https://ikuma-t.work/posts/type-challenge-concat
キーワード: Variadic Tuple Types
https://ikuma-t.work/posts/type-challenge-includes
キーワード: Conditional Types
、infer
、 Variadic Tuple Types
めちゃくちゃ難しかった回です。厳密な等価評価の部分は今でもよくわかっていません。
https://ikuma-t.work/posts/type-challenge-push
キーワード: Variadic Tuple Types
https://ikuma-t.work/posts/type-challenge-unshift
キーワード: Variadic Tuple Types
https://ikuma-t.work/posts/type-challenge-parameters
キーワード: infer
、Conditional Types
:::
感想
出てきたキーワードで重複しているものはConditional Types
、infer
、Variadic Tuple Types
、Mapped Types
、Indexed Access Types
、keyof
って感じですかね。
自分はプリミティブ型とそこそこの用語だけオライリーの本で覚えて、あとはエイやでTypeScriptの世界にきてしまったので、いわゆる「高度な型」を実際に学ぶことができているのはとても良いなあと思います。
もともとTypeScriptを勉強しようとしたきっかけは、自作サービスを作っている時に、各ライブラリのドキュメントとかソースが軒並みTS化していて、「これTypeScriptがわからないと、単位時間あたりで取得できる情報量めちゃくちゃしょぼいんじゃね」と思ったのがきっかけでした。
自分で練習で書いているコードではeasyの問題に出てくるようなコードもまだそこまで書いていませんが、本来の目的であるライブラリのソースを理解するという点では非常に役に立っていると思います。
というわけで明日からはmedium編に突入です。これまでの延長で解けるのか、はたまた撃沈するかわかりませんが、毎日1問解いていきます!