Development/Typescript
[TypeScript] Utility types - Partial, Record, NonNullable
레오나르도 다빈츠
2022. 11. 23. 15:43
◽ Partial
특정 타입의 부분 집합을 정의할 때 사용한다.
interface UserInfo {
name: string
age: number
}
type User = Partial<UserInfo>
const user1: User = {}
const user2: User = { name: 'hi' }
const user3: User = { name: 'hello', age: 20000 }
◽ Record
타입스크립트에서는 인덱스 시그니처(Index Signature)는 대괄호로 객체를 접근하는 방법을 사용할 수 있다.
인덱스 시그니처의 경우 문자열 리터럴을 key로 사용하지 못하지만, Record는 가능하다.
예제 1.
// 1. 인덱스 시그니처를 사용했을 때
type UserInfo = {
[name: string]: number
}
// 2. Record 유틸리티 타입을 사용했을 때
type UserInfo = Record<string, number>
const user: UserInfo = {
'안녕': 10000,
'HI': 20000,
'HELLO': 30000,
}
◽ NonNullable
null이나 undefined를 제외하고 타입을 구성한다.
type T = string | number | undefined
type T1 = NonNullable<T>
출처
- https://developer-talk.tistory.com/296
- https://www.typescriptlang.org/docs/handbook/utility-types.html