[TypeScript]Pickについて、実際に実装して理解する。
TypeScriptの既存の型から任意の項目だけを抽出して新たな型にするPickというものがある。
今回はこれを自力で実装して理解する
目標は以下のMyPickを実装すること。
なお、この例はtype-challengesから持ってきている。
https://github.com/type-challenges/type-challenges/blob/master/questions/4-easy-pick/README.ja.md
回答例はわずかこれだけ
うん、全くわからん。
ジェネリクスっぽいことをしているのは分かるが。。。
少しずつ紐解いて行こう。
まずは、これ
keyofってなんだ?
こういうときは具体例で見ていこう
以下のUser型があるとする
ここでUser型に対して、keyofしてみる
なるほど。
どうやらkeyofはオブジェクトのkeyの一覧を取得して、orですべて取得するらしい。
次はこれ
まずは
これは以下の通り書き換えられる
keyofと組み合わせることにより、上記のUserの例で行くと
となる。
また
は、User型の例で行くと
となるので、User型の対応するキーの値ということになる。
まとめ
すなわち、
は、T型のオブジェクトに対して、T型のkeyに存在するkeyに合わせて値を抽出をしている
ということになりました。