인터페이스 하나 만들어놓고 상황마다 조금씩 다른 형태가 필요한데 매번 새로 interface 정의하기가 너무 번거로워요. 이런 User가 있다고 치면요.
interface User {
id: number;
name: string;
email: string;
password: string;
}
수정 API는 일부 필드만 보내니까 전부 optional인 버전이 필요하고, 목록에서는 id랑 name만 쓰고 싶고, 응답 줄 때는 password는 빼야 되거든요. 찾아보니까 Partial<User>, Pick<User, "id"|"name">, Omit<User, "password"> 이런 게 있던데 각각 정확히 뭘 하는 거고 제 상황에 맞게 어떻게 골라 써야 하는지 모르겠어요. 그리고 Partial<Omit<User, "id">> 처럼 겹쳐서 쓰는 것도 되나요? 겸사겸사 type이랑 interface는 언제 뭘 쓰는 게 맞는지도 궁금합니다.