Typescript 일부 키를 선택 사항으로 만들기
type ExcludeKey<T extends Record<string,unknown>, U extends keyof T>={
[K in keyof T as K extends U ? never : K]: T[K]
}
type MakeKeyOptional<T extends Record<string,unknown>, U extends keyof T>=ExcludeKey<T,U> & {[K in U]?:T[K]}
type A = MakeKeyOptional<{a:1,b:2,c:3},"b"|"c">
const a1:A = {a:1} // ok!
const a2:A = {a:1,b:2} // ok!
const a3:A = {a:1,b:2,c:3} // ok!
const a4:A = {b:2,c:3} // expect error!
playground
이지 모드(유틸리티 포함)
type MakeKeyOptional<T extends Record<string, unknown>, U extends keyof T> =
Omit<T, U> & Partial<Pick<T, U>>;
Reference
이 문제에 관하여(Typescript 일부 키를 선택 사항으로 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tylim88/typescript-make-some-key-optional-2olj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)