【发布时间】:2020-06-03 16:30:24
【问题描述】:
对于使用 TypeScript 枚举为 oneOf 生成 yup 架构的函数,我无法找出正确的类型。
跟随按预期工作,返回类型为yup.MixSchema<SomeEnum>
const schema1 = yup.mixed<SomeEnum>().oneOf(Object.values(SomeEnum)); // yup.MixSchema<SomeEnum>
如果我尝试创建一个通用函数来返回架构,我会得到yup.MixSchema<typeof SomeEnum> 的返回类型。注意typeof。
const oneOfEnum = <T>(enumObject: T) =>
yup.mixed<T>().oneOf(Object.values(enumObject));
const schema2 = oneOfEnum(SomeEnum); // yup.MixSchema<typeof SomeEnum>
https://codesandbox.io/s/yup-typescript-oneof-enum-vpvjn?file=/src/index.ts
【问题讨论】:
标签: typescript enums yup