이 부분은 솔직히 이해가 잘 안 된 부분도 있어서, 다시 한 번 정리를 해야할 필요성을 느꼈다. 일단 대략만 정리해보자
base type을 바탕으로 다른 버전의 타입을 만들 수 있다.
Partial, Pick, Omit