Skip to content

Commit 8e10721

Browse files
committed
fix: yup resolver typescript errors
1 parent 507ee0d commit 8e10721

File tree

2 files changed

+8
-22
lines changed

2 files changed

+8
-22
lines changed

yup/src/__tests__/yup.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,7 @@ describe('yupResolver', () => {
121121
foo: [{ loose: null }],
122122
};
123123

124-
const output = await yupResolver(schema)(
125-
// @ts-expect-error
126-
data,
127-
{},
128-
true,
129-
);
124+
const output = await yupResolver(schema)(data, {}, true);
130125
expect(output).toMatchSnapshot();
131126
expect(output.errors['foo']?.[0]?.['loose']).toBeDefined();
132127
expect(output.errors['foo']?.[0]?.['loose']?.types)
@@ -168,7 +163,6 @@ describe('yupResolver', () => {
168163
foo: [{ loose: null }],
169164
};
170165

171-
// @ts-expect-error
172166
const output = await yupResolver(schema)(data);
173167
expect(output).toMatchSnapshot();
174168
expect(output.errors.age?.types).toBeUndefined();
@@ -185,7 +179,6 @@ describe('yupResolver', () => {
185179
};
186180
const output = await yupResolver(schema, {
187181
abortEarly: true,
188-
// @ts-expect-error
189182
})(data, undefined, true);
190183

191184
expect(output.errors).toMatchInlineSnapshot(`
@@ -208,7 +201,6 @@ describe('yupResolver', () => {
208201
inner: [{ path: '', message: 'error1', type: 'required' }],
209202
});
210203

211-
// @ts-expect-error
212204
const output = await yupResolver(schemaWithContext)(data);
213205
expect(output).toMatchSnapshot();
214206
});
@@ -245,7 +237,6 @@ describe('validateWithSchema', () => {
245237
}),
246238
});
247239

248-
// @ts-expect-error
249240
expect(await yupResolver(schemaWithContext)(data, { min: true }))
250241
.toMatchInlineSnapshot(`
251242
Object {

yup/src/yup.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
/* eslint-disable @typescript-eslint/ban-ts-comment */
2-
import {
3-
Resolver,
4-
ResolverError,
5-
ResolverSuccess,
6-
transformToNestObject,
7-
} from 'react-hook-form';
2+
import { FieldValues, Resolver, transformToNestObject } from 'react-hook-form';
83
import Yup from 'yup';
94

105
/**
@@ -62,12 +57,12 @@ type ValidateOptions<T extends Yup.AnyObjectSchema> = Parameters<
6257
T['validate']
6358
>[1];
6459

65-
export const yupResolver = <T extends Yup.AnyObjectSchema>(
66-
schema: T,
67-
options: ValidateOptions<T> = {
60+
export const yupResolver = <TFieldValues extends FieldValues>(
61+
schema: Yup.AnyObjectSchema,
62+
options: ValidateOptions<Yup.AnyObjectSchema> = {
6863
abortEarly: false,
6964
},
70-
): Resolver<Yup.InferType<T>> => async (
65+
): Resolver<TFieldValues> => async (
7166
values,
7267
context,
7368
validateAllFieldCriteria = false,
@@ -85,12 +80,12 @@ export const yupResolver = <T extends Yup.AnyObjectSchema>(
8580
context,
8681
}),
8782
errors: {},
88-
} as ResolverSuccess<Yup.InferType<T>>;
83+
};
8984
} catch (e) {
9085
const parsedErrors = parseErrorSchema(e, validateAllFieldCriteria);
9186
return {
9287
values: {},
9388
errors: transformToNestObject(parsedErrors),
94-
} as ResolverError<Yup.InferType<T>>;
89+
};
9590
}
9691
};

0 commit comments

Comments
 (0)