TypeScript는 미리 정의된 제네릭 타입인 Utility Type을 제공하여 코드 작성과 타입 정의를 더욱 효율적으로 만들어줍니다. 이러한 유틸리티 타입은 기존 타입을 변환하고 재구성하는 데 사용되며 코드의 가독성과 안정성을 향상시킵니다. 이번 포스팅에서는 몇 가지 주요 TypeScript Utility Type을 자세히 살펴보겠습니다.
1. Partial<Type>: 선택적 속성 만들기
Partial<Type> Utility Type은 주어진 타입의 모든 속성을 선택적으로 만듭니다. 이것은 객체의 일부 속성만 필수로 제공하고 나머지는 선택적으로 만들 때 유용합니다.
type Person = {
name: string;
age: number;
address: string;
};
type PartialPerson = Partial<Person>;
const partialPerson: PartialPerson = {
name: 'John',
};
PartialPerson 타입은 모든 속성이 선택적으로 허용되므로 ‘name’만 포함하는 객체를 만들 수 있습니다.
2. Record<Keys, Type>: 객체 생성 및 초기화
Record<Keys, Type> Utility Type은 주어진 키와 타입을 가진 객체를 생성합니다. 이것은 객체를 만들거나 초기화할 때 특히 유용합니다.
type PhoneNumbers = Record<string, string>;
const phoneBook: PhoneNumbers = {
John: '123-456-7890',
Jane: '987-654-3210',
};
PhoneNumbers 타입은 문자열 키와 문자열 값으로 이루어진 객체를 정의합니다. 이것은 전화번호부와 같은 데이터를 표현할 때 유용합니다.
3. Omit<Type, Keys>: 특정 속성 제외
Omit<Type, Keys> Utility Type은 주어진 타입에서 지정된 속성을 제외한 모든 속성을 가지는 타입을 생성합니다.
type Person = {
name: string;
age: number;
address: string;
};
type PersonWithoutAge = Omit<Person, 'age'>;
const personWithoutAge: PersonWithoutAge = {
name: 'John',
address: '123 Main St',
};
PersonWithoutAge 타입은 ‘age’ 속성을 제외한 모든 속성을 가지는 타입입니다. 이것은 특정 속성을 제외하고 타입을 재사용해야 할 때 유용합니다.
마무리
TypeScript의 Utility Type은 타입 정의를 더 간결하게 만들고 코드의 가독성을 높이며 재사용성을 향상시킵니다. 이러한 Utility Type을 활용하여 복잡한 타입 변환 작업을 수행할 수 있으며 코드 작성과 유지 관리를 더 쉽게 만들어줍니다. 이러한 기능을 활용하여 TypeScript로 더 안정적이고 생산적인 코드를 작성할 수 있습니다.