-
Utility Types ( Partial, Required, Pick&Omit )Computer Science/TypeScript 2023. 10. 21. 22:28
1. Utility Type이란
2. Partial
3. Required
4. Pick & Omit
1. Utility Type 이란
타입스크립트에서 기존에 존재하는 타입을 변환하여 새로운 타입을 만들어내는 데 사용되는 일련의 제네릭 타입.
Utility Type을 통해 더 유연하게 타입을 조작하고 제공할 수 있다.
2. Partial
객체의 모든 속성을 옵셔널 타입으로 만들어준다.
주로 API에서 받아온 데이터의 형태가 일정하지 않거나, 일부 데이터만 필요할 때 사용된다.
interface Product { id: number; name: string; price: number; description?: string; } function updateProduct(product: Partial<Product>) { }
id, name, price, description 중 일부만 있어도 가능하도록 만들어준다.
3. Required
Partial 과는 달리 모든 속성을 필수 타입으로 만들어준다.
주로 API에서 사용자가 제출한 데이터가 모든 필드가 채워져야할 때 등에 사용된다.
interface FormInput { name?: string; email?: string; password?: string; } function submitForm(input: Required<FormInput>) { }
name, email, password가 전부 존재해야한다.
4. Pick&Omit
Pick은 기존 타입에서 특정 속성을 선택해서 사용하는 것이고
Omit은 기존 타입에서 특정 속성을 제거해서 사용하는 것이다.
interface User { name: string; email: string; age: number; } type NewUserType = Pick<User, 'name' | 'age'>; const user: NewUserType = { name: "", age: 1, }; type NewUserType2 = Omit<User, 'email'>; const user2: NewUserType2 = { name: "", age: 1, };
새로운 타입을 만드는 것에 비해 얻을 수 있는 이점은 예를 들어 email의 타입이 string이 아닌 특정 형태로 바뀐다면 새로운 타입을 만드는 방식은 기존 타입의 email과 새로운 타입의 email 두군데를 전부 바꾸어주어야하지만 Pick 과 Omit은 기존 타입만 변경해주면 된다는 점에서 편리하며 오류를 더 방지할 수 있다.
'Computer Science > TypeScript' 카테고리의 다른 글
[TypeScript] Declare 의 용도 (0) 2023.11.19 Template Literal Type (0) 2023.10.14 infer (1) 2023.09.30 type vs interface (0) 2023.09.22 TSC vs Babel (0) 2023.09.15