ใช้ typescript type ใน yup schema
Sep 24 2020
สามารถใช้ประเภท typescript ในการตรวจสอบความถูกต้องได้หรือไม่?
คุณสามารถ:
yup.string().oneOf(['salami', 'tuna', 'cheese']);
ในส่วนประกอบของฉันฉันได้กำหนดประเภทนี้ไว้:
type toppings = 'salami' | 'tuna' | 'cheese';
ฉันสามารถรวมสองสิ่งนี้ได้หรือไม่? ได้แก่ :
type toppings = 'salami' | 'tuna' | 'cheese';
yup.string().oneOf(toppings); // <- how?
คำตอบ
1 Vencovsky Sep 24 2020 at 19:09
คุณสามารถใช้การyup.mixed<TYPE>()ส่งผ่านประเภททั่วไปของคุณ
yup.mixed<toppings>().oneOf(['salami', 'tuna', 'cheese']);
คุณกำลังส่งผ่านเป็นyup.string()แต่ไม่ใช่สตริงเป็นประเภท'salami' | 'tuna' | 'cheese'ที่ประกอบด้วยสตริง แต่ไม่ใช่สตริงใด ๆ ดังนั้นคุณต้องใช้.mixedเพื่อกำหนดค่าเฉพาะ
หากคุณไม่ต้องการส่งผ่านอาร์เรย์ด้วยค่าประเภทโดยตรงคุณสามารถดูคำถามนี้เกี่ยวกับวิธีสร้างได้