Skip to content

Commit 9a98132

Browse files
authored
feat: add Values type (#703)
1 parent 11278cb commit 9a98132

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

src/interface.ts

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ export interface InternalFieldData extends Meta {
2424
/**
2525
* Used by `setFields` config
2626
*/
27-
export interface FieldData extends Partial<Omit<InternalFieldData, 'name'>> {
28-
name: NamePath;
27+
export interface FieldData<Values = any> extends Partial<Omit<InternalFieldData, 'name'>> {
28+
name: NamePath<Values>;
2929
}
3030

3131
export type RuleType =
@@ -235,37 +235,38 @@ export interface InternalHooks {
235235
}
236236

237237
/** Only return partial when type is not any */
238-
type RecursivePartial<T> = NonNullable<T> extends object
239-
? {
240-
[P in keyof T]?: NonNullable<T[P]> extends (infer U)[]
241-
? RecursivePartial<U>[]
242-
: NonNullable<T[P]> extends object
243-
? RecursivePartial<T[P]>
244-
: T[P];
245-
}
246-
: T;
238+
type RecursivePartial<T> =
239+
NonNullable<T> extends object
240+
? {
241+
[P in keyof T]?: NonNullable<T[P]> extends (infer U)[]
242+
? RecursivePartial<U>[]
243+
: NonNullable<T[P]> extends object
244+
? RecursivePartial<T[P]>
245+
: T[P];
246+
}
247+
: T;
247248

248249
export type FilterFunc = (meta: Meta) => boolean;
249250

250251
export type GetFieldsValueConfig = { strict?: boolean; filter?: FilterFunc };
251252

252253
export interface FormInstance<Values = any> {
253254
// Origin Form API
254-
getFieldValue: (name: NamePath) => StoreValue;
255+
getFieldValue: (name: NamePath<Values>) => StoreValue;
255256
getFieldsValue: (() => Values) &
256-
((nameList: NamePath[] | true, filterFunc?: FilterFunc) => any) &
257+
((nameList: NamePath<Values>[] | true, filterFunc?: FilterFunc) => any) &
257258
((config: GetFieldsValueConfig) => any);
258-
getFieldError: (name: NamePath) => string[];
259-
getFieldsError: (nameList?: NamePath[]) => FieldError[];
260-
getFieldWarning: (name: NamePath) => string[];
261-
isFieldsTouched: ((nameList?: NamePath[], allFieldsTouched?: boolean) => boolean) &
259+
getFieldError: (name: NamePath<Values>) => string[];
260+
getFieldsError: (nameList?: NamePath<Values>[]) => FieldError[];
261+
getFieldWarning: (name: NamePath<Values>) => string[];
262+
isFieldsTouched: ((nameList?: NamePath<Values>[], allFieldsTouched?: boolean) => boolean) &
262263
((allFieldsTouched?: boolean) => boolean);
263-
isFieldTouched: (name: NamePath) => boolean;
264-
isFieldValidating: (name: NamePath) => boolean;
265-
isFieldsValidating: (nameList?: NamePath[]) => boolean;
266-
resetFields: (fields?: NamePath[]) => void;
267-
setFields: (fields: FieldData[]) => void;
268-
setFieldValue: (name: NamePath, value: any) => void;
264+
isFieldTouched: (name: NamePath<Values>) => boolean;
265+
isFieldValidating: (name: NamePath<Values>) => boolean;
266+
isFieldsValidating: (nameList?: NamePath<Values>[]) => boolean;
267+
resetFields: (fields?: NamePath<Values>[]) => void;
268+
setFields: (fields: FieldData<Values>[]) => void;
269+
setFieldValue: (name: NamePath<Values>, value: any) => void;
269270
setFieldsValue: (values: RecursivePartial<Values>) => void;
270271
validateFields: ValidateFields<Values>;
271272

0 commit comments

Comments
 (0)