TypeScript 타입스크립트 (3)

minkyung·2022년 12월 1일
0
post-thumbnail

Generic

클래스, 함수, 인터페이스를 다양한 타입으로 재사용 가능

Utility type

1. Key of interface

인터페이스의 키 값들을 유니온 형태로 얻을 수 있음

interface User {
	name : string;
  	age : number;
  	gender : 'M' | 'F';
}

const userKey = keyof User
console.log(userKey)

//'name' | 'age' | 'gender'

2. Partial<interface>

인터페이스의 프로퍼티를 모두 옵셔널로 바꿔줌

interface User {
	name : string;
  	age : number;
  	gender : 'M' | 'F';
  	id: number;
}

let admin: Partial<User> = {
  name: 'bob',
  id: 1
}

3. Required<interface>

인터페이스의 프로퍼티를 모두 필수 조건으로 바꿔줌

interface User {
	name?: string;
  	age?: number;
  	gender?: 'M' | 'F';
  	id?: number;
}

let admin: Required<User> = {
  name: 'bob',
  age: 25,
  gender: 'F',
  id: 2
}

4. Readonly<interface>

5. Record<Key,Type>

6. Pick<Interface,key>

인터페이스에서 특정 프로퍼티(키)만 골라서 사용 가능

7. Omit<Interface,key>

인터페이스 특정 프로퍼티(키)만 제외하고 사용 가능

interface User {
	id: number;
  	name: string;
  	age: number;
  	gender: 'M' | 'F';
}

const admin: Omit<User, "id" | "name> = {
                  age: 26,
                  gender: 'F'
                  }

8. Exclude<Types,Type>

omit은 프로퍼티(키)로 제외시키고, exclude는 타입으로 제외시킴

type Types = string | number | object | void
type ExcludeType = Exclude<Types, void | object>

//ExcludeType의 타입은 string | number 가 됨
  

9. NonNullable

null을 제외한 타입 생성, 근데 undefined도 같이 뺌

profile
프론트엔드 개발자

0개의 댓글