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를 만든다.
- 튜플 안의 타입을 잘 몰라도 튜플 및 어레이에서 high-order-operations를 표현할 수 있다.
3. Spread는 tuple, array만 가능하므로 컴파일러에게 사용하는 제네릭 타입이 해당 타입임을 알려줘야한다.
내가 생각한 풀이 방법
- 제네릭에 스프레드가 되나 혹시나 해봤는데 됐다.
- 에러가 났었지만, 3번의 팁 처럼 extends로 타입을 명시해주니 해결이 되었다.
실행하지 못했던 이유 및 해결 방법
해답
![](https://blog.kakaocdn.net/dn/edz52h/btr5rbaYRDq/Q3OGpD1aNaL8EzWIzBosm1/img.png)
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 |