Language/Typescript66 타입스크립트 : 타입의 함정 (Read와 Write의 타입추론) 평화롭게 코딩을 하던 어느날.Nest.js 톡방의 "주발자"라는 분께서 한 가지 의문을 던져주셨다.바로 다음 코드에서 obj2[key] = value; 코드를 적어 놓을테니 해보실 분들은 해보시길 바랍니다.type Entries2 = { [K in keyof T]-?: [K, T[K]];}[keyof T][];interface Test { test1: string; id?: number;}const obj: Test = { test1: "hoi", id: 0,};const obj2: Test = { test1: "", id: undefined,};type A = Entries2;for (const arr of Object.entries(obj) as Entries2) { const [ke.. 2024. 6. 23. 타입스크립트 : Object To Union 코드를 작성하다가 문득, Object를 Union으로 바꾸는 방법에 대해 고민이 생겼다. 그래서 Object를 Union으로 바꾸어 보기로 마음 먹고 코드를 작성해보았다. 내가 작성한 타입들은 다음과 같다. 1. 객체의 속성들의 리턴 타입을 유니온으로 변환하여 리턴하는 타입 2. 객체의 속성 값을 변환하여 유니온 타입으로 리턴 3. 객체의 각 속성을 하나씩 분리하여 유니온 타입으로 리턴 일단 기본적인 타입은 아래와 같다 type Human = { name: string; age: number; height: number; weight: number; }; 객체의 속성들의 리턴 타입을 유니온으로 변환 간단하다. 다음 두 가지 방법으로 변환할 수 있다. 방법 2가 더 쉽다. // 방법1 type HumanT.. 2024. 3. 17. 타입챌린지 : 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. 이전 1 2 3 4 ··· 17 다음