타입스크립트에서 기본적으로 제공하는 탕비 선언이 모여 있는 lib.es5.d.ts 파일을 분석해보자.

Untitled

타입스크립트 플레이그라운드에서 lib.es5.d.tsArray 인터페이스를 볼 수 있음

자바스크립트의 버전이 올라감에 따라 배열에 신기능이 추가되고, 신기능에 타입 선언되어 있는 파일도 추가되기 때문에 파일이 여러게인 것을 볼 수 있음

그럼 확장자가 ts가 아니라 .d.ts인 이유는 타입스트립트의 .d.ts 파일에는 타입 선언만 있고 실제 구현부가 없기때문. 자바스크립트 문법은 따로 구현되어 있기에 타입스크립트에서는 타입 선언만 제공하는 것. 실제로 실행되는 코드는 없고 자바스크립트의 타입 선언만 들어 있음.

3.1 Partial, Required, Readonly, Pick, Record


Partial, Required, Readonly, Pick, Record 는 타입스크립트 공식 사이트의 ReferenceUtility Types에서 매핑된 객체 타입을 사용하는 것만 추린 것

먼저 기본 객체의 속성을 전부 옵셔널로 만드는 Partial 함수

type MyPartial<T> = {
	[P in keyof T]?: T[P];
};

type Result = MyPartial<{ a: string, b: number }>;

→ 있어도 되고, 없어도 되고

속성을 옵셔널이 아니게 만들기

type MyRequired<T> = {
	[P in keyof T]-?: T[P];
};

type Result = MyRequired<{ a?: string, b?: number }>;

→ 값이 다 필요함