몽땅뚝딱 개발자

[TypeScript] Utility types - Partial, Record, NonNullable 본문

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>

 

 

 


 

 

 

출처

 

 

Comments