본문 바로가기
WEB/타입 챌린지

[Type Challenge] Concat

by IT황구 2023. 3. 23.
728x90
반응형

다들 잘 지내셨나요~! 오랜만에 글을 쓰네요!

 

TS를 사용하는데 제네릭이 너무 까불어서 도저히 참지 못하겠더라구요..

 

TS 챌린지를 처리해버리고 모든 오픈소스들의 제네릭을 다 이해하는것이 목표입니다..

 

꾸준함이 중요한거 아시죠?! 다들 시작합시다!

 

 

 

문제

  • 배열 2개를 넣었을때, 안의 원소들을 모두 합친 하나의 배열을 표현하는 타입 만들기.

https://github.com/type-challenges/type-challenges/blob/main/questions/00533-easy-concat/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

 

 

문제 의도 및 개념정리

1. TS 4.0 부터 추가된 기능

    • 제네릭이 Spread 문법을 사용할 수 있게 만들어준다
    • Variadic Tuple Types (가변 튜플 타입)

 

2. 문제의 핵심은 튜플 타입도 제네릭이 된다는 뜻이다.

    • 튜플 안의 타입을 잘 몰라도 튜플 및 어레이에서 high-order-operations를 표현할 수 있다.
      • generic spread가 실제 유형으로 대체되면 다른 형태의 array를 만든다.

 

3. Spread는 tuple, array만 가능하므로 컴파일러에게 사용하는 제네릭 타입이 해당 타입임을 알려줘야한다.

 

내가 생각한 풀이 방법

  • 제네릭에 스프레드가 되나 혹시나 해봤는데 됐다.
  • 에러가 났었지만, 3번의 팁 처럼 extends로 타입을 명시해주니 해결이 되었다.

 

실행하지 못했던 이유 및 해결 방법

 

해답

 

728x90
반응형

'WEB > 타입 챌린지' 카테고리의 다른 글

[Type Challenge] BEM style string  (0) 2023.04.07
[Type Challenge] Absolute  (0) 2023.04.03
[Type Challenge] Length of Tuple  (0) 2023.04.02
[Type Challenge] Pick  (0) 2023.04.01
[Type Challenge] Exclude  (0) 2023.03.26