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

[Type Challenge] Append to Object

by IT황구 2023. 4. 8.
728x90
반응형

문제

https://github.com/type-challenges/type-challenges/blob/main/questions/00527-medium-append-to-object/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

문제 의도 및 개념정리

  • Mapped Type 응용
  • Conditional Types

 

내가 생각한 풀이 방법

  • 처음에 intersection으로 접근했다.
    • T & { [P in U] : V};
    • 위 타입은 &로 연결되어있다. 두개가 합쳐진 형태의 interface는 아니라서 안된다.
    • Equal<{ a:1, b:2 }, {a:1} & {b:2}> 는 False 이다.
    • 따라서 새로운 형태로 만들어야 하는구나. 라고 생각했다.
  • Mapped Type에서 기존 키와 새로운 키를 합친다. [ X in (keyof T) | U ]
    • 기존의 key + 새로운 key를 포함해서 X에 담는다.
  • 조건부 타입을 이용해서 value를 잘 넣어주면 된다.

 

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

해답

Reference

한국어 답안지에 잘못된 내용들이 있었습니다. 그대로 놔두면 저처럼 이상한 지식을 맞다고 받아들일것 같아서, 수정했습니다.

includes는 제가 contribute 했습니다 하하.. 물론 해답이 맞지는 않습니다. 다 쓰면 너무 길어지거든요.. 나중에 블로그에서 다루겠습니다.

Medium도 처음에 푸는 2문제에서 막혔는데, 해결하고 나니 이제는 조금 답이 보이기 시작합니다.

오픈소스의 제네릭이 부담스럽지 않은 그때까지 달려야겠습니다!

https://ghaiklor.github.io/type-challenges-solutions/ko/easy-includes.html

고통을 긍정적으로!! 화이팅!!

728x90
반응형

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

[Type Challenge] Capitalize  (0) 2023.04.09
[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