반응형
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번)
[]
를 출력한다
반응형
'✍ 공부 > TypeScript' 카테고리의 다른 글
[type-challenges] Trim Left (0) | 2023.06.06 |
---|---|
[type-challenges] Type Lookup (0) | 2023.06.06 |
[type-challenges] Last of Array (0) | 2023.05.30 |
[type-challenges] Tuple to Union (0) | 2023.05.30 |
[type-challenges] Deep Readonly (0) | 2023.05.30 |