Partial
어떤 interface T에서 필요한 property 일부만 선택하는 방법. 어떤 property를 선택할지 명시하지는 않는다. 최소 1개는 가져와야 한다.

Required
어떤 interface T에서 optional한 property를 포함해 모든 property를 required로 만드는 방법.

Readonly
어떤 interface T에서 모든 property를 readonly type으로 만드는 방법.

Pick<T, K>
어떤 interface T에서 필요한 property 일부를(K) 선택하는 방법. Partial과 유사하지만 다른 점은, 선택할 property를 명시한다는 점.
|연산자를 통해 여러 property를 선택한다.
optional(?)한 property를 선택하면 optionality가 유지된다.
쉽게 말해, 기존 T를 그냥 slice 하는데 남길 부분을 결정한 것.

Omit<T, K>
Pick과 반대. 어떤 interface T에서 필요없는 property 일부를(K) 선택하는 방법.
K를 제외한 모든 property를 그대로 가져온다.
Pick과 마찬가지로 기존 T를 그냥 slice 하는데 잘라낼 부분을 결정하는 것이다.
