일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- go
- notification system
- 배포 파이프라인
- goland
- 디자인패턴
- System Design
- Buffered channel
- 사설 ip
- intellij ide
- AWS
- apollo router
- elasticsearch
- 티스토리챌린지
- GoF
- Kubernetes
- Infra
- http 413
- 대규모 시스템 설계
- body size
- m4 pro
- 컴포지트패턴
- UnBuffered channel
- gitops
- 오블완
- Logrus
- golang
- 배포 프로세스
- GoF 디자인패턴
- Intellij
- 윈도우키보드
Archives
- Today
- Total
Fall in IT.
Typescript Partial, Required, Pick 사용방법 본문
반응형
interface IPerson
{
name: string;
age: number;
gender: string;
}
/**
* 인터페이스의 모든 프로퍼티를 optional하게 변경한다.
*/
type PartialPerson = Partial<IPerson>;
const partialPerson: PartialPerson =
{
gender: "male" // optional
}
/**
* 인터페이스의 모든 프로퍼티를 required하게 변경한다.
*/
type RequiredPerson = Required<PartialPerson>;
const requiredPerson: RequiredPerson =
{
name: "Jade", // required
age: 29, // required
gender: "male" // required
}
/**
* 인터페이스의 프로퍼티중 일부(name, age)만 받도록 설정한다.
*/
type PickPerson = Pick<IPerson, "name" | "age">;
const pickPerson: PickPerson =
{
name: "Jade", // required
age: 29, // required
// gender: "male" --> (X)
}
/**
* 인터페이스의 프로퍼티중 일부(name,age)는 required
* gender는 optional로 받도록 설정한다.
*/
type PickPerson2 = Pick<IPerson, "name" | "age"> & Pick<Partial<IPerson>, "gender">;
const pickPerson2: PickPerson2 =
{
name: "Jade", // required
age: 29, // required
gender: "male" // optional
}
- 특정 속성만 제거하는 방법
interface IPerson
{
name: string;
age: number;
gender: string;
}
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
type SubPartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
type MyPerson = SubPartial<IPerson, "gender">;
let p: MyPerson;
반응형
'프로그래밍언어 > Javascript & Typescript' 카테고리의 다른 글
window.opener 알아보기 (0) | 2018.11.29 |
---|---|
Javascript every 메소드 사용하기 (1) | 2018.11.21 |
Typescript Generic이란? (1) | 2018.08.30 |
자바스크립트 명시적 바인딩 사용하기(call, apply, bind) (0) | 2018.07.21 |
자바스크립트 메모이제이션(memoization) 사용하기 (0) | 2018.07.10 |
Comments