728x90
반응형
문제
- template literal type을 이용할 줄 아는가?
- 템플릿 리터럴 안에 유니온 타입이 있으면 표현할 수 있는 모든 경우의 수를 다 보여준다.
- 몰라도 풀 수는 있다.. (알면 굉장히 편하다)
내가 생각한 풀이 방법
- 템플릿 리터럴 활용, E가 있으면 __, 없으면 --, M은 순회하면서 —
- 빈 배열의 값을 E[0]로 접근했을때 비어있는가? 를 보려면 E[0] extends undefined 로 해야한다.
- 나는 처음에 never로 하다가 디버깅 해보니 undefined로 나와서 알았다.
- E[number] extends never 도 됨.
실행하지 못했던 이유 및 해결 방법
해답
![](https://blog.kakaocdn.net/dn/cXMNJu/btr8xOcMZ1y/8rqaDyXzGAFohYsOhsVvx0/img.png)
- 얼핏 보면 이게 될까 싶지만, Modifier에서 'blue' | 'red' 를 리턴해 줄 경우 아래처럼 변환된다.
- '${Block<B>}${Element<E>}blue' | '${Block<B>}${Element<E>}red'
- 처음부터 저렇게 우아하게 풀었던것은 아니다. 알아보기는 힘들지만, 내가 처음에 통과했던 코드이다.
![](https://blog.kakaocdn.net/dn/nucAm/btr8vtHg73H/JH7sj1KYVXWrhPokNli8j1/img.png)
- 접근을 굉장히 단순하게 했다. 아래 처럼 생각했었는데, 테스트케이스가 빈약해서 통과가 된 것 같다.
- E에 값이 여러개라면 통과되지 않을 코드였다.
![](https://blog.kakaocdn.net/dn/EQ9jp/btr8vIqALhD/QNVf8hILIfz5OsjNBFR0CK/img.png)
Reference
Medium을 풀면서 느끼는것은, easy를 풀지 못하면 아예 손도 대지 못하겠다 라고 생각이 들었습니다.
1개의 타입을 정의하기 위해 새로운 커스텀 타입들을 만들기도 해야 합니다. 훨씬 익숙해져서 좋습니다.
혼자서 Medium을 풀 것이라고는 생각도 못했는데 그래도 처음의 막막함에서는 많이 벗어난것 같습니다!
고통을 긍정적으로!! 화이팅!!
![](https://blog.kakaocdn.net/dn/bBdAff/btr8vPJ3jnd/KdUTdIL3dKgHaeKAhwYkUk/img.png)
728x90
반응형
'WEB > 타입 챌린지' 카테고리의 다른 글
[Type Challenge] Capitalize (0) | 2023.04.09 |
---|---|
[Type Challenge] Append to Object (0) | 2023.04.08 |
[Type Challenge] Absolute (0) | 2023.04.03 |
[Type Challenge] Length of Tuple (0) | 2023.04.02 |
[Type Challenge] Pick (0) | 2023.04.01 |