kakasoo

Merge, 두 객체 합병하기 본문

프로그래밍/TypeScript

Merge, 두 객체 합병하기

카카수(kakasoo) 2023. 4. 2. 21:22
반응형
// type Merge<F, S> = {
//   [K in keyof (F & S)]: K extends keyof F ? F[K] : K extends keyof S ? S[K] : never;
// }
type Merge<F, S> = {
  [K in keyof (F & S)]: K extends keyof S ? S[K] : K extends keyof F ? F[K] : never;
}

두 객체를 합쳐야 하기 때문에 F & S 의 모든 key를 뽑고, 그 키가 어느 쪽인지에 따라 S, F에 인덱스로 주어지게 했다.
주석처리되어 있는 부분은 F에서 먼저 그 키를 찾는데,
이 문제는 키가 중복될 경우 나중에 들어온 S를 기준으로 하기 때문에 주석처리 되지 않은 쪽 Merge가 올바른 해답이다.

반응형