특정 제품 가용성 플래그를 기반으로 Zod 스키마의 모든 속성을 선택적으로 만드는 방법은 무엇입니까?
P粉298305266
P粉298305266 2023-08-30 22:37:05
0
1
418
<p>전자상거래 애플리케이션에 대한 제품 속성의 유효성을 검사하기 위한 Zod 스키마가 있습니다. 내 스키마에는 현재 제품의 공급이 제한되어 있는지 여부를 나타내는 <code>isLimitedEdition</code>이라는 속성이 있습니다. 그러나 <code>isLimitedEdition</code>이 true로 설정되면 스키마의 다른 모든 속성이 선택 사항이 되기를 원합니다. </p> <p>기존 아키텍처는 다음과 같습니다.</p> <pre class="brush:php;toolbar:false;">const productProperties = z.object({ 이름: z.string().nonempty(), 설명: z.string().nonempty(), 가격: z.number().긍정적(), 카테고리: z.string().nonempty(), 브랜드: z.string().nonempty(), isFeatured: z.boolean().default(false), isLimitedEdition: z.boolean().default(false), });</pre> <p>이 아키텍처에서는 isLimitedEdition이 true로 설정되면 모든 속성(이름, 설명, 가격, 카테고리, 브랜드, isFeatured)이 선택 사항이 되는 동작을 구현하고 싶습니다. </p> <p>원하는 동작을 달성하기 위해 이 스키마를 어떻게 수정합니까? 이 논리를 올바르게 구현하는 데 도움이 되는 지침이나 코드 예제를 제공해 주시면 감사하겠습니다. 미리 감사드립니다! </p> <p><code>refine</code> 방법을 시도했지만 성공하지 못했습니다.</p>
P粉298305266
P粉298305266

모든 응답(1)
P粉225961749

discriminatedUnion를 사용하여 이를 달성할 수 있습니다:

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿