✍ 공부/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번)
[]
를 출력한다
반응형