타입을 넘겨받고 해당 Optional하게 바꾸기
/** `T`의 모든 속성을 순회하며 optional로 수정 */
export type DeepPartial<T> = {
[P in keyof T]?: DeepPartial<T[P]>;
};
/** 특정 key를 제외하고 optional로 변환 */
export type PartialExcept<T, K extends keyof T> = Partial<T> & Pick<T, K>;
/** 특정 key를 제외하고 모든 속성을 optional로 변환 */
export type DeepPartialExcept<T, K extends keyof T> = DeepPartial<T> & Pick<T, K>;
/** 특정 key만 optional로 변환 */
export type PartialKeys<T, K extends keyof T> = Partial<Pick<T, Extract<keyof T, K>>> & Omit<T, K> extends infer O
? { [P in keyof O]: O[P] }
: never;
'Typescript' 카테고리의 다른 글
[TypeScript] Component Polymorphic하게 사용하기 (0) | 2024.01.27 |
---|---|
[Tspec] TypeScrip 기반 OpenApi Spec,Swagger 만들기 (0) | 2023.07.09 |
[Effective TypeScript] item52 테스팅 타입의 함정에 주의하기 (0) | 2023.04.04 |
[Effective TypeScript] item51 의존성 분리를 위해 미러 타입 사용하기 (0) | 2023.04.04 |