728x90
반응형
문제
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
문제 의도 및 개념정리
- interface를 dictionary 처럼 사용할 수 있는지?
- string에서 Infer를 쓸 경우 어떻게 작동하는지?
내가 생각한 풀이 방법
- 첫번째 글자만 대문자로 변경한다…
- 흠.. 10진수로 변경해서 사용할 수 있는가?
- 정규표현식도 가능한가?
- 빈 문자인가 확인, 아니면 첫번째 문자만 잡아서 변경.
- ${S[0]['toUpperCase']${S['slice'][1]}} : never; 이런게 안된다.
실행하지 못했던 이유 및 해결 방법
- 설마 했는데 진짜 인터페이스를 dictionary 처럼 사용하는 것이다.
- 정규표현식이나 특정 함수를 사용할 수 없을까? 고민했지만 되지 않았다.
- string에서 ${infer SFirst}${infer SRest} 를 하면 tuple의 [SFirst, ...SRest] 처럼 작동한다.
해답
![](https://blog.kakaocdn.net/dn/eG2Z7L/btr8MraWrPr/3bnwn1GuM6TKl4MPYBeXN0/img.png)
Reference
레퍼런스는 딱히 존재하지 않습니다. infer는 string이나 array가 똑같이 작동한다는점
- string도 character의 array라서 당연히 그래야 하지 않나 싶긴 합니다.
런타임에 사라지는 interface를 dictionary처럼 사용해서 타입을 추론하고 값을 바꿀 수 있다. 라는 아이디어를 캐치하는게 조금 쉽지 않았다고 생각합니다.
문제가 한번에 안풀렸으니 좀 얻어가는게 있는것 같습니다!
고통을 긍정적으로!! 화이팅!!
728x90
반응형
'WEB > 타입 챌린지' 카테고리의 다른 글
[Type Challenge] Append to Object (0) | 2023.04.08 |
---|---|
[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 |