방명록
- 4. First of Array2023년 08월 09일 00시 54분 29초에 업로드 된 글입니다.작성자: sooooong_minseok
type First<T extends any[]> = any /* _____________ 테스트 케이스 _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect<Equal<First<[3, 2, 1]>, 3>>, Expect<Equal<First<[() => 123, { a: string }]>, () => 123>>, Expect<Equal<First<[]>, never>>, Expect<Equal<First<[undefined]>, undefined>>, ] type errors = [ // @ts-expect-error First<'notArray'>, // @ts-expect-error First<{ 0: 'arrayLike' }>, ]
키워드1.
첫 번째 요소의 값을 가져오면서, 빈 배열인 경우 never을 반환하는 타입
First<T extend any[]>에서 <T extend any[]>는 제네릭 타입 매개변수 T를 선언한다는 의미로, any[] 또는 그 하위 타입을 확장하도록 제합니다.
배열의 시작점의 값을 가져오는 동시에, 빈 배열인 경우 never를 반환하는 타입을 만드는 것이 목표이다.
조건식을 가지고 있는 타입!
T extends [] ? 를 통해 참이면 naver
T[0] : T가 비어있지 않은 배열 타입인 경우 첫 번째 요소의 타입을 추출한다. 배열의 첫 번째 요소는 인덱스 0으로 접근가능함으로, T[0]은 배열 T의 첫 번째 요소의 타입을 의미한다.
'프로그래밍언어 > typescript' 카테고리의 다른 글
3. Tuple of Object (0) 2023.08.09 2. Readonly (0) 2023.08.02 1. Pick (0) 2023.07.22 다음글이 없습니다.이전글이 없습니다.댓글