반응형
TypeScript는 정적 타입을 지원하여 코드의 안정성과 유지보수성을 높이는 데 도움을 줍니다. 이 중에서도 Omit
과 Partial
은 매우 유용한 유틸리티 타입으로, 각각 객체 타입을 변형하는 데 사용됩니다. 이번 글에서는 Omit
과 Partial
의 차이점을 자세히 설명하겠습니다.
Partial<T>
Partial
유틸리티 타입은 주어진 타입 T
의 모든 프로퍼티를 선택적으로 만듭니다. 즉, 모든 프로퍼티가 있어도 되고 없어도 되는 상태가 됩니다.
사용 예시
interface User {
id: number;
name: string;
email: string;
}
type PartialUser = Partial<User>;
const user1: PartialUser = {};
const user2: PartialUser = { id: 1 };
const user3: PartialUser = { name: 'Alice', email: 'alice@example.com' };
특징
- 모든 프로퍼티가 선택적(Optional)으로 변환됩니다.
- 주로 객체의 일부 프로퍼티만 업데이트할 때 유용합니다.
Omit<T, K>
Omit
유틸리티 타입은 주어진 타입 T
에서 특정 프로퍼티 K
를 제거한 새로운 타입을 만듭니다.
사용 예시:
interface User {
id: number;
name: string;
email: string;
}
type UserWithoutEmail = Omit<User, 'email'>;
const user: UserWithoutEmail = { id: 1, name: 'Alice' };
특징
- 주어진 타입에서 특정 프로퍼티를 제거하여 새로운 타입을 만듭니다.
- 주로 특정 프로퍼티를 제외한 나머지 프로퍼티만 필요할 때 유용합니다.
차이점 정리
- 변형 방식:
Partial<T>
: 모든 프로퍼티를 선택적으로 만듭니다.Omit<T, K>
: 특정 프로퍼티를 제거하여 새로운 타입을 만듭니다.
- 사용 목적:
Partial<T>
: 객체의 일부만 업데이트하거나, 선택적인 프로퍼티를 가질 때 사용합니다.Omit<T, K>
: 불필요한 프로퍼티를 제거하고 필요한 프로퍼티만 가지는 타입을 만들 때 사용합니다.
- 예시 적용 상황:
Partial<T>
: API 요청에서 선택적인 업데이트 데이터를 보낼 때.Omit<T, K>
: 데이터베이스 엔터티에서 민감한 정보를 제외한 데이터를 반환할 때.
결론
Partial
과 Omit
은 TypeScript에서 객체 타입을 변형하는 데 매우 유용한 도구입니다. Partial
은 모든 프로퍼티를 선택적으로 만들어 부분 업데이트나 선택적 프로퍼티를 다룰 때 유용하고, Omit
은 특정 프로퍼티를 제거하여 필요한 데이터만 다룰 때 유용합니다. 각 유틸리티 타입의 특징과 사용 목적을 잘 이해하고 적절하게 활용하면 더욱 안정적이고 유지보수하기 쉬운 코드를 작성할 수 있습니다.
반응형
'Programming > Typescript' 카테고리의 다른 글
[Typescript] TypeScript의 모듈 파일과 전역 모듈의 차이점 및 예제 (2) | 2023.05.07 |
---|---|
[Typescript] typescript에서 enum을 반복하는 방법 (0) | 2022.11.08 |
[Typescript] typescript에서 express의 request를 확장해서 사용하는 방법 (0) | 2022.07.29 |
[Typescript] Typescript에서 class가 다중상속을 지원하지 않는 이유 (다이아몬드 문제) (0) | 2022.07.24 |
[Typescript] typescript에서 type과 interface의 속성을 재정의하는 방법 (typescript Overriding) (1) | 2022.07.13 |