속성에서 readonly 제거한 타입
참고: https://www.typescriptlang.org/ko/docs/handbook/2/mapped-types.html#mapping-modifiers
export type CreateMutable<T> = {
-readonly [Property in keyof T]: T[Property]
}
extends
키워드는 공통 key가 있고 서로 타입이 다른 경우 에러 발생
&
문법은 공통 key가 있고 서로 타입이 다른 경우, 그 두 타입의 유니온 타입으로 정의하여 에러 발생하지 않음
export type LeftOuterJoin<T, K> = T & Omit<K, keyof T> | T