[Typescript] TS 유틸리티 (Utility Types)



 Partial<Type> - Type의 모든 속성이 선택 사항으로 설정된 형식이다.

interface A {
a: string;
c: boolean;
d: number;
}

const a: A = {
a: 'aaa',
c: false,
d: 123,
};

const b: Partial<A> = {
c: true,
d: 123,
};



Readonly<Type> - 모든 속성이 읽기 전용으로 설정된 형식을 생성한다. 즉, 생성된 형식의 속성을 다시 할당할 수 없다.

interface A {
a: string;
c: boolean;
d: number;
}

const a: A = {
a: 'aaa',
c: false,
d: 123,
};

const b: Readonly<A> = {
a: 'bbb',
c: true,
d: 123,
};



ReturnType<Type> - 어떤 함수의 return 값의 return 타입을 가져올 수 있다.

declare function f1(): { a: number; b: string };

type T0 = ReturnType<() => string>;
//type T0 = string

type T1 = ReturnType<(s: string) => void>;
//type T1 = void

type T2 = ReturnType<<T>() => T>;
//type T2 = unknown

type T3 = ReturnType<<T extends U, U extends number[]>() => T>;
//type T3 = number[]

type T4 = ReturnType<typeof f1>;
// type T4 = {
// a: number;
// b: string;
// }


등 여러 유틸리티가 있다. 프로그래머의 행동이 중복될때 즉 타이핑이 여러번 반복될 때 Utility Types를 찾아보면 좋다.


참고

https://www.typescriptlang.org/docs/handbook/utility-types.html




댓글