Skip to content

Commit 70e5dd2

Browse files
docs: update ts.mdx (#1087)
* docs: update ts.mdx There is 3d generic type TTransformedValues and it's not documented yet at website docs (TS section) * docs: update full ts.mdx
1 parent e661636 commit 70e5dd2

File tree

1 file changed

+105
-77
lines changed

1 file changed

+105
-77
lines changed

src/content/ts.mdx

Lines changed: 105 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ export default function App() {
129129
```typescript copy
130130
export type UseFormReturn<
131131
TFieldValues extends FieldValues = FieldValues,
132-
TContext = any
132+
TContext = any,
133+
TTransformedValues extends FieldValues | undefined = undefined,
133134
> = {
134135
watch: UseFormWatch<TFieldValues>
135136
getValues: UseFormGetValues<TFieldValues>
@@ -238,16 +239,24 @@ export default function App() {
238239
```typescript copy
239240
export type UseFormProps<
240241
TFieldValues extends FieldValues = FieldValues,
241-
TContext extends object = object
242+
TContext extends object = object,
243+
TTransformedValues extends FieldValues | undefined = undefined,
242244
> = Partial<{
243245
mode: Mode
244-
reValidateMode: Mode
245-
defaultValues: DeepPartial<TFieldValues>
246+
disabled: boolean
247+
reValidateMode: Exclude<Mode, 'onTouched' | 'all'>
248+
defaultValues: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>
249+
values: TFieldValues
250+
errors: FieldErrors<TFieldValues>
251+
resetOptions: Parameters<UseFormReset<TFieldValues>>[1]
246252
resolver: Resolver<TFieldValues, TContext>
247253
context: TContext
248254
shouldFocusError: boolean
249255
shouldUnregister: boolean
250-
criteriaMode: "firstError" | "all"
256+
shouldUseNativeValidation: boolean
257+
progressive: boolean
258+
criteriaMode: CriteriaMode
259+
delayError: number
251260
}>
252261
```
253262
@@ -261,37 +270,14 @@ export type UseFieldArrayReturn<
261270
TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,
262271
TKeyName extends string = "id"
263272
> = {
264-
swap: (indexA: number, indexB: number) => void
265-
move: (indexA: number, indexB: number) => void
266-
prepend: (
267-
value:
268-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>
269-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>[],
270-
options?: FieldArrayMethodProps
271-
) => void
272-
append: (
273-
value:
274-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>
275-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>[],
276-
options?: FieldArrayMethodProps
277-
) => void
278-
remove: (index?: number | number[]) => void
279-
insert: (
280-
index: number,
281-
value:
282-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>
283-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>[],
284-
options?: FieldArrayMethodProps
285-
) => void
286-
update: (
287-
index: number,
288-
value: Partial<FieldArray<TFieldValues, TFieldArrayName>>
289-
) => void
290-
replace: (
291-
value:
292-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>
293-
| Partial<FieldArray<TFieldValues, TFieldArrayName>>[]
294-
) => void
273+
swap: UseFieldArraySwap
274+
move: UseFieldArrayMove
275+
prepend: UseFieldArrayPrepend<TFieldValues, TFieldArrayName>
276+
append: UseFieldArrayAppend<TFieldValues, TFieldArrayName>
277+
remove: UseFieldArrayRemove
278+
insert: UseFieldArrayInsert<TFieldValues, TFieldArrayName>
279+
update: UseFieldArrayUpdate<TFieldValues, TFieldArrayName>
280+
replace: UseFieldArrayReplace<TFieldValues, TFieldArrayName>
295281
fields: FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>[]
296282
}
297283
```
@@ -302,16 +288,25 @@ export type UseFieldArrayReturn<
302288

303289
```typescript copy
304290
export type UseFieldArrayProps<
305-
TKeyName extends string = "id",
306-
TControl extends Control = Control
291+
TFieldValues extends FieldValues = FieldValues,
292+
TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,
293+
TKeyName extends string = 'id',
307294
> = {
308-
name: string
295+
name: TFieldArrayName
309296
keyName?: TKeyName
310-
control?: TControl
311-
rules?: Pick<
297+
control?: Control<TFieldValues>
298+
rules?: {
299+
validate?
300+
| Validate<FieldArray<TFieldValues, TFieldArrayName>[], TFieldValues>
301+
| Record<
302+
string,
303+
Validate<FieldArray<TFieldValues, TFieldArrayName>[], TFieldValues>
304+
>
305+
} & Pick<
312306
RegisterOptions<TFieldValues>,
313-
"maxLength" | "minLength" | "validate" | "required"
307+
'maxLength' | 'minLength' | 'required'
314308
>
309+
shouldUnregister?: boolean
315310
}
316311
```
317312
@@ -347,6 +342,7 @@ export type UseControllerProps<
347342
shouldUnregister?: boolean
348343
defaultValue?: FieldPathValue<TFieldValues, TName>
349344
control?: Control<TFieldValues>
345+
disabled?: boolean
350346
}
351347
```
352348
@@ -356,7 +352,8 @@ export type UseControllerProps<
356352
357353
```typescript copy
358354
export type FieldError = {
359-
type: string
355+
type: LiteralUnion<keyof RegisterOptions, string>
356+
root?: FieldError
360357
ref?: Ref
361358
types?: MultipleFieldErrors
362359
message?: Message
@@ -383,10 +380,13 @@ export type FieldErrors<T extends FieldValues = FieldValues> = Partial<
383380
384381
```typescript copy
385382
export type Field = {
386-
ref: Ref
387-
mutationWatcher?: MutationWatcher
388-
options?: RadioOrCheckboxOption[]
389-
} & RegisterOptions
383+
_f: {
384+
ref: Ref
385+
name: InternalFieldName
386+
refs?: HTMLInputElement[]
387+
mount?: boolean
388+
} & RegisterOptions
389+
}
390390
```
391391
392392
---
@@ -406,15 +406,14 @@ export type FieldPath<TFieldValues extends FieldValues> = Path<TFieldValues>
406406
This type will return union with all available paths that match the passed value
407407
408408
```typescript copy
409-
function Field<
410-
TFieldValues extends FieldValues,
411-
TPath extends FieldPathByValue<TFieldValues, Date>
412-
>({ control, name }: { control: Control<TFieldValues>; name: TPath }) {
413-
const { field } = useController({
414-
control,
415-
name,
416-
})
417-
}
409+
export type FieldPathByValue<TFieldValues extends FieldValues, TValue> = {
410+
[Key in FieldPath<TFieldValues>]: FieldPathValue<
411+
TFieldValues,
412+
Key
413+
> extends TValue
414+
? Key
415+
: never
416+
}[FieldPath<TFieldValues>]
418417
```
419418
420419
---
@@ -432,39 +431,68 @@ export type FieldValues = Record<string, any>
432431
```typescript copy
433432
export type FieldArrayWithId<
434433
TFieldValues extends FieldValues = FieldValues,
435-
TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,
436-
TKeyName extends string = "id"
434+
TFieldArrayName extends
435+
FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,
436+
TKeyName extends string = 'id',
437437
> = FieldArray<TFieldValues, TFieldArrayName> & Record<TKeyName, string>
438+
438439
```
439440
440441
---
441442
442443
## \</> Mode {#Mode}
443444
444445
```typescript copy
445-
export type Mode = {
446-
onBlur: "onBlur"
447-
onChange: "onChange"
448-
onSubmit: "onSubmit"
449-
onTouched: "onTouched"
450-
all: "all"
451-
}
446+
export type ValidationMode = typeof VALIDATION_MODE
447+
448+
export type Mode = keyof ValidationMode
452449
```
453450
454451
---
455452
456453
## \</> RegisterOptions {#RegisterOptions}
457454
458455
```typescript copy
459-
export type RegisterOptions = Partial<{
456+
export type RegisterOptions<
457+
TFieldValues extends FieldValues = FieldValues,
458+
TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
459+
> = Partial<{
460460
required: Message | ValidationRule<boolean>
461461
min: ValidationRule<number | string>
462462
max: ValidationRule<number | string>
463-
maxLength: ValidationRule<number | string>
464-
minLength: ValidationRule<number | string>
465-
pattern: ValidationRule<RegExp>
466-
validate: Validate | Record<string, Validate>
467-
}>
463+
maxLength: ValidationRule<number>
464+
minLength: ValidationRule<number>
465+
validate:
466+
| Validate<FieldPathValue<TFieldValues, TFieldName>, TFieldValues>
467+
| Record<
468+
string,
469+
Validate<FieldPathValue<TFieldValues, TFieldName>, TFieldValues>
470+
>
471+
value: FieldPathValue<TFieldValues, TFieldName>
472+
setValueAs: (value: any) => any
473+
shouldUnregister?: boolean
474+
onChange?: (event: any) => void
475+
onBlur?: (event: any) => void
476+
disabled: boolean
477+
deps: FieldPath<TFieldValues> | FieldPath<TFieldValues>[]
478+
}> &
479+
(
480+
| {
481+
pattern?: ValidationRule<RegExp>
482+
valueAsNumber?: false
483+
valueAsDate?: false
484+
}
485+
| {
486+
pattern?: undefined
487+
valueAsNumber?: false
488+
valueAsDate?: true
489+
}
490+
| {
491+
pattern?: undefined
492+
valueAsNumber?: true
493+
valueAsDate?: false
494+
}
495+
)
468496
```
469497
470498
---
@@ -474,14 +502,14 @@ export type RegisterOptions = Partial<{
474502
```typescript copy
475503
export type FormStateProxy<TFieldValues extends FieldValues = FieldValues> = {
476504
isDirty: boolean
477-
dirtyFields: Dirtied<TFieldValues>
478-
isSubmitted: boolean
479-
submitCount: number
480-
touched: FieldNames<TFieldValues>
481-
isSubmitting: boolean
505+
isValidating: boolean
506+
dirtyFields: FieldNamesMarkedBoolean<TFieldValues>
507+
touchedFields: FieldNamesMarkedBoolean<TFieldValues>
508+
validatingFields: FieldNamesMarkedBoolean<TFieldValues>
509+
errors: boolean
482510
isValid: boolean
483-
errors: FieldErrors<TFieldValues>
484511
}
512+
485513
```
486514
487515
---

0 commit comments

Comments
 (0)