본문 바로가기
Language/Typescript

타입챌린지 : 3060-Unshift (easy)

by hsloth 2023. 3. 6.

 

이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다.

 

https://github.com/type-challenges/type-challenges/blob/main/questions/03060-easy-unshift/README.md

 

GitHub - type-challenges/type-challenges: Collection of TypeScript type challenges with online judge

Collection of TypeScript type challenges with online judge - GitHub - type-challenges/type-challenges: Collection of TypeScript type challenges with online judge

github.com

 

type Unshift<T extends any[], U> = [U, ...T];

// test case
type cases = [
  Expect<Equal<Unshift<[], 1>, [1]>>,
  Expect<Equal<Unshift<[1, 2], 0>, [0, 1, 2]>>,
  Expect<Equal<Unshift<['1', 2, '3'], boolean>, [boolean, '1', 2, '3']>>,
]

Push의 문제 풀이랑 똑같다.

type Unshift : Unshift 라는 타입을 정의한다.

<T extends any[], U> = [U, ...T]; : 전개연산자를 사용해야하기 때문에 T에 배열을 상속한다. 그리고 [U, ...T] 를 통해 배열 T 앞에 U를 넣으면 끝!

 

참고

https://suloth.tistory.com/37

 

타입챌린지 : 3057-Push (easy)

이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다. https://github.com/type-challenges/type-challenges/blob/main/questions/03057-easy-push/README.m

suloth.tistory.com