본문 바로가기

분류 전체보기210

타입챌린지 : 4182-Fibonacci Sequence (medium) 이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다. https://github.com/type-challenges/type-challenges/blob/main/questions/04182-medium-fibonacci-sequence/README.md 타입으로 피보나치 수열을 구현하는 문제이다. 나는 MinusOne타입과 Plus타입을 이용해서 구현했지만... depth가 너무 깊어진다고 에러가 났다... type Push = T extends [infer F, ...infer O] ? [F, ...O, U] : [U]; type NumberToArray = U['length'] extends T ? U : NumberToArray typ.. 2023. 9. 25.
타입챌린지 : 4179-Flip (medium) 이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다. https://github.com/type-challenges/type-challenges/blob/main/questions/04179-medium-flip/README.md key-value -> value-key로 객체의 key와 value의 위치를 바꾸는 타입이다. type Flip = { [P in keyof T as T[P] extends string | boolean | number | bigint | null | undefined ? `${T[P]}`: never]: P } 일단... 굉장히 쉽다. T[P]를 key로 바꾸기 위해 as문을 사용할 텐데, T[P]에서 T[P]의.. 2023. 9. 16.
타입챌린지 : 3376-InorderTraversal (medium) 이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다. https://github.com/type-challenges/type-challenges/blob/main/questions/03376-medium-inordertraversal/README.md 일단 내가 푼 답을 봐보자. interface TreeNode { val: number left: TreeNode | null right: TreeNode | null } type InorderTraversal = T extends TreeNode ? T['left'] extends TreeNode ? [...InorderTraversal, T['val']] : T['right'] extends.. 2023. 9. 15.
타입챌린지 : 3326-BEM style string (medium) 이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다. https://github.com/type-challenges/type-challenges/blob/main/questions/03326-medium-bem-style-string/README.md 쉽게 말하면 제네릭 B를 기반으로 조합할 수 있는 E와 M을 유니온 타입으로 뽑으면 된다. (근데 조금 애매한게, E의 경우 중복해서 정의할 수 있는지를 잘 모르겠다) type BEM = M extends [infer F extends string, ...infer O extends string[]] ? `${BEM}--${F}` | `${BEM}` : E extends [infer F exte.. 2023. 9. 14.