유틸리티 타입

김태완·2022년 4월 29일
0

자바스크립트 문법

목록 보기
14/14
post-thumbnail

ts의 유틸리티 타입정리해보기

Index Signature

대괄호로 객체를 접근하는 타입

type humanInfo = {
	[name: string] : number
};

let human: humanInfo = {
	"김태완" : 30,
    "이도경" : 29,
    "장재형" : 29,
}

Record

인덱스 시그니처에서 사용하지 못하는 문자열 리터럴을 허용함

type names = "김태완" | "이도경" | "장재형";
type humanInfo = Record<names, number>

let human: humanInfo = {
	"김태완" : 30,
    "이도경" : 29,
    "장재형" : 29,
}

Partial

파셜타입은 특정 타입의 부분집합을 만족하는 타입이다

interface People {
	name: string;
    age: number;
}

type Gamer = Partial<People>;

const ktw:Gamer = {}; // ok
const ktw:Gamer = { name:"ktw"}; // ok
const ktw:Gamer = { name:"ktw", age: 29}; // ok

Pick

픽타입은 특정 타입의 몇개속성을 선택해서 타입을 지정한다

interface People {
	name: string;
    age: number;
    address: string;
    married : boolean;
}

type User = Pick<People, "name" | "age">;

const ktw:User = { name: "ktw"} // ok
const ktw:User = { age: 30} // ok
const ktw:User = { name: "ktw", age: 30} // ok

Omit

오밋타입은 특정 속성만 제거하여 타입을 지정한다.

interface People {
	name: string;
    age: number;
    address: string;
    married : boolean;
}

// Pick<People, "name" | "age">이랑 동일
type User = Omit<People, "address" | "married">; 

const ktw:User = { name: "ktw"} // ok
const ktw:User = { age: 30} // ok
const ktw:User = { name: "ktw", age: 30} // ok
profile
프론트엔드개발

0개의 댓글