Estoy tratando de validar DTO usando Yup y no puedo resolver un problema con la verificación de enumeraciones. Tengo un código similar al siguiente:
export enum TestEnum { TEST = 0, NOT_TEST = 1, } export interface SampleDTO { testEnum: TestEnum[]; } export const sampleDtoSchema: SchemaOf<SampleDTO> = yup.object({ testEnum: yup .array( yup .mixed<TestEnum>() .oneOf(Object.values(TestEnum) as TestEnum[]) .required(), ) .ensure(), });Y me sale este error:
Type 'MixedSchema<TestEnum | undefined, AnyObject, TestEnum>' is not assignable to type 'BaseSchema<Maybe<TestEnum.NOT_TEST>, AnyObject, TestEnum.NOT_TEST>'. Types of property '__inputType' are incompatible. Type 'TestEnum | undefined' is not assignable to type 'Maybe<TestEnum.NOT_TEST>'. Type 'TestEnum.TEST' is not assignable to type 'Maybe<TestEnum.NOT_TEST>'¿Cómo se debe hacer correctamente?
Esto podría ser útil:
export const sampleDtoSchema: yup.SchemaOf<SampleDTO> = yup.object({ testEnum: yup .array( yup .mixed() .oneOf<TestEnum>(Object.values(TestEnum) as TestEnum[]) .required() ) .min(1) .ensure() });