✍ 공부/TypeScript

[type-challenges] POP

Po_tta_tt0 2023. 6. 6. 20:37
반응형

 

 

 

0. 문제

배열 T를 사용해 마지막 요소를 제외한 배열을 반환하는 제네릭 Pop<T>를 구현합니다.

 

 

 

1. 설명

/* _____________ 여기에 코드 입력 _____________ */

type Pop<T extends any[]> = T extends [ ...infer P, any] ? P : []

type temp = Pop<[3, 2, 1]>

/* _____________ 테스트 케이스 _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

type cases = [
  Expect<Equal<Pop<[3, 2, 1]>, [3, 2]>>,
  Expect<Equal<Pop<['a', 'b', 'c', 'd']>, ['a', 'b', 'c']>>,
  Expect<Equal<Pop<[]>, []>>,
]
  • 배열 T를 전개 연산으로 앞부분 전부(...infer P), 뒤 하나(any)로 나눈다
  • 앞부분 전부 ==(infer) P 이기 때문에 앞부분만 출력하기 위해서는 P를 꺼내준다.
  • 만약 출력할 수 없는 형태라면(TYPE CASES 3번) []를 출력한다
반응형