前提
type-challengesの
[easy] First of Array
の問題についての質問です。
https://github.com/type-challenges/type-challenges/blob/main/questions/00014-easy-first/README.md
問題内容
配列Tを受け取り、その最初のプロパティの型を返すFirst<T>を実装します。
TS
1type arr1 = ['a', 'b', 'c'] 2type arr2 = [3, 2, 1] 3 4type head1 = First<arr1> // expected to be 'a' 5type head2 = First<arr2> // expected to be 3
疑問点
上記の問題に関して、解答例を見ると以下のような回答内容でした。
TS(解答例)
1type First<T extends any[]> = T extends {length : 0} ? never : T[0]
これは以下のような状態と同じだと思います。これでも良いのでは?と思いました。
TS(これでも良いのでは?)
1type First2<T extends any[]> = T[0]
質問1
TS(解答例)の方は配列の内容がない時にnever型になるように考慮しているのだと思うのですが、必ず必要な分岐なのでしょうか。
TS(これでも良いのでは?)の型は、値がない場合はundefined型となりましたが、値がある場合は期待通りの型になりました。
質問2
もし質問1の分岐が必須だとすれば、「配列の値がないとき」かつ「何を返せば良いか定まらない時」はnever型を返しておけば良い。といった御作法的なものはあるのでしょうか。
初歩的な質問かとは思いますが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/08 07:27