Use o tipo de texto digitado no esquema yup
Sep 24 2020
Um tipo de texto datilografado pode ser usado em uma validação do yup?
Em yup, você pode:
yup.string().oneOf(['salami', 'tuna', 'cheese']);
Em um dos meus componentes, tenho este tipo definido:
type toppings = 'salami' | 'tuna' | 'cheese';
Posso combinar esses dois? Ou seja:
type toppings = 'salami' | 'tuna' | 'cheese';
yup.string().oneOf(toppings); // <- how?
Respostas
1 Vencovsky Sep 24 2020 at 19:09
Você pode usar a yup.mixed<TYPE>()passagem de seu tipo genérico.
yup.mixed<toppings>().oneOf(['salami', 'tuna', 'cheese']);
Você está passando como yup.string(), mas não é uma string, é o tipo de 'salami' | 'tuna' | 'cheese', que contém string, mas não é nenhuma string, então você precisa usar .mixedpara definir um valor específico.
Se você não quiser passar diretamente o array com os valores de tipo, você pode dar uma olhada nesta pergunta sobre como fazer isso.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino