問題 & 解答
type-challenges/README.md at main · type-challenges/type-challenges🔗type-challenges/README.md at main · type-challenges/type-challenges🔗
タプルが与えられるので、その長さを型とするLength
を実装する
type tesla = ['tesla', 'model 3', 'model X', 'model Y'] as consttype spaceX = ['FALCON 9', 'FALCON HEAVY', 'DRAGON', 'STARSHIP', 'HUMAN SPACEFLIGHT'] as const
type teslaLength = Length<tesla> // expected 4type spaceXLength = Length<spaceX> // expected 5
constアサーションが適用されているので、readonly
な配列T
を定義する。
Array.prototype
のインスタンスプロパティlength
を指定して、長さを取得する。
type Length<T extends readonly any[]> = T['length']
調べたこと
Array.prototype.length
Array.length - JavaScript | MDN🔗
length は Array 型のインスタンスであるオブジェクトのプロパティで、配列の要素の数を設定または取得します
感想
今回はIndex Accessed Typesとプロトタイプチェーンの復習でした。
最初にPickを解いた時は「これでeasyかよ!」と思ったりしていましたが、だんだん妥当に感じるようになってきました。 でもeasyで高度な型がでているってことは、mediumはえげつないのかな。