배열(튜플) T를 받아 첫 원소의 타입을 반환하는 제네릭 First<T>
type arr1 = ['a', 'b', 'c']
type arr2 = [3, 2, 1]
type head1 = First<arr1> // 'a'
type head2 = First<arr2> // 3
타입 변수 한 개를 받으며 이는 array 타입이다.
type First<T extends any[]> = ??
그리고 타입 변수의 T의 첫번 째 값을 주면 된다.
type First<T extends any[]> = T[0]