我有这个数据传输对象,我将它与 React 钩子表单和打字稿一起使用,ExampleDto 对象具有嵌套对象和枚举。
$('#my-form')[0].requestSubmit()
下面是一个嵌套的枚举
export interface ExampleDto {
name: string;
uid: string;
use: UseEnum;
teamRoles: TeamRoles;
isActive: boolean;
}
以下是一个嵌套对象,其属性都具有相同的枚举
export enum UseEnum {
Sport = "Sport",
Casual = "Casual",
}
这是我正在尝试构建的架构
export interface TeamRoles {
Advisor?: TeamRoleEnum[];
Sales?: TeamRoleEnum[];
Marketing?: TeamRoleEnum[];
Accounting?: TeamRoleEnum[];
Finance?: TeamRoleEnum[];
HumanResources?: TeamRoleEnum[];
}
export enum TeamRoleEnum {
Advisor = "Advisor",
Sales = "Sales",
Marketing = "Marketing",
Accounting = "Accounting",
Finance = "Finance",
HumanResources = "HumanResources",
}
架构不正确,它给了我错误“MixedSchema”类型上不存在属性“对象”。
我正在努力寻找这种复杂程度的示例
const schema: yup.ObjectSchema<ExampleDto> = yup
.object({
name: yup.string().max(100).required('Required'),
uid: yup.string().max(100).required('Required'),
use: yup.mixed<UseEnum>().oneOf(Object.values(UseEnum)).required('Required'),
teamRoles: yup.mixed<TeamRoles>()
.object({
SeniorConsultant: yup.mixed<TeamRoleEnum>().oneOf(Object.values(TeamRoleEnum)),
Consultant: yup.mixed<TeamRoleEnum>().oneOf(Object.values(TeamRoleEnum)),
SeniorRegistrar: yup.mixed<TeamRoleEnum>().oneOf(Object.values(TeamRoleEnum)),
Registrar: yup.mixed<TeamRoleEnum>().oneOf(Object.values(TeamRoleEnum)),
Resident: yup.mixed<TeamRoleEnum>().oneOf(Object.values(TeamRoleEnum)),
Intern: yup.mixed<TeamRoleEnum>().oneOf(Object.values(TeamRoleEnum)),
})
.required('Required'),
isActive: yup.boolean().required('Required'),
})
.defined();