Open kscory opened 5 months ago
type Merge<F, S> = {[key in keyof F | keyof S]: key extends keyof S?
S[key] :
key extends keyof F?
F[key]:
never;
}
첫번째 : key extends keyof S? 로 타입을 좁혔을 시 false일 경우에 key를 찾지 못한다. 그래서 extends keyof F? 를 한번더해서 key를 정의해줘야 한다.
type Merge<F, S> = {
[K in keyof F | keyof S]: K extends keyof S ? S[K] : (F & S)[K]
}
아래처럼 F 를 먼저 판단하면 왜 안될까요... 이것때문에 삽질했네요 ㅜ
type Merge<F, S> = {
[K in keyof F | keyof S]: K extends keyof F ? F[K] : (F & S)[K]
}
type Merge<F, S> = { [K in keyof F | keyof S]: K extends keyof S ? S[K] : (F & S)[K] }
아래처럼 F 를 먼저 판단하면 왜 안될까요... 이것때문에 삽질했네요 ㅜ
type Merge<F, S> = { [K in keyof F | keyof S]: K extends keyof F ? F[K] : (F & S)[K] }
아... 뒤에 나온게 앞을 덮어써야 하는군요
type Merge<F, S> = {
[key in keyof F | keyof S]: key extends keyof S ? S[key] : key extends keyof F ? F[key] : never;
}
답안을 작성해주세요.