일단 시작하는 IT개발 블로그
  • 4. First of Array
    2023년 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
    댓글