Open3
TSの型のメモ
Tupleをオブジェクトに変換する
as constで定義されたものに対して
type Sample<T extends readonly any[]>
のように。extendsで制約をかけることで、配列の中の値が差割り当てできないことが前提。
readonlyをつけることで変更することができないことが前提とできる。
そのため、as constで指定した配列を受け取ることができる。
type TuppleToObject<T extends readonly any[]> = { [K in T[number]]: K }
Pickの作成
以下で、KがTのkeyであるものに制約する
type MyPick<T, K extends keyof T> = {
以下で、TからKをピックアップしたものをkeyとし、valueをT[P]で取得する。
type MyPick<T, K extends keyof T> = {
[P in K]: T[P]
}
配列の最初を取得する
type First<T extends any[]> = T exetends [infer U, ...any[]] ? U : never