Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 修复 form ts 类型警告 #1775

Merged
merged 1 commit into from
Dec 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/form/FormContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const FormContext = React.createContext<{
formMapRef: React.RefObject<Map<any, React.RefObject<FormItemInstance>>>;
onFormItemValueChange: (changedValue: Record<string, unknown>) => void;
}>({
form: {},
form: undefined,
labelWidth: '100px',
labelAlign: 'right',
layout: 'vertical',
Expand Down
2 changes: 1 addition & 1 deletion src/form/hooks/useForm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class FormStore {
}

export default function useForm(form?: InternalFormInstance) {
const formRef = useRef<InternalFormInstance>({});
const formRef = useRef<InternalFormInstance>(Object.create({}));
const [, forceUpdate] = useState({});

// eslint-disable-next-line
Expand Down
20 changes: 10 additions & 10 deletions src/form/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export interface FormInstanceFunctions<FormData extends Data = Data> {
/**
* 清空校验结果。可使用 fields 指定清除部分字段的校验结果,fields 值为空则表示清除所有字段校验结果。清除邮箱校验结果示例:`clearValidate(['email'])`
*/
clearValidate?: (fields?: Array<keyof FormData>) => void;
clearValidate: (fields?: Array<keyof FormData>) => void;
/**
* 获取 form dom 元素
*/
Expand All @@ -116,39 +116,39 @@ export interface FormInstanceFunctions<FormData extends Data = Data> {
/**
* 获取单个字段值
*/
getFieldValue?: (field: NamePath) => unknown;
getFieldValue: (field: NamePath) => unknown;
/**
* 获取一组字段名对应的值,当调用 getFieldsValue(true) 时返回所有表单数据
*/
getFieldsValue?: getFieldsValue<FormData>;
getFieldsValue: getFieldsValue<FormData>;
/**
* 重置表单,表单里面没有重置按钮`<button type=\"reset\" />`时可以使用该方法,默认重置全部字段为空,该方法会触发 `reset` 事件。<br />如果表单属性 `resetType='empty'` 或者 `reset.type='empty'` 会重置为空;<br />如果表单属性 `resetType='initial'` 或者 `reset.type='initial'` 会重置为表单初始值。<br />`reset.fields` 用于设置具体重置哪些字段,示例:`reset({ type: 'initial', fields: ['name', 'age'] })`
*/
reset?: (params?: FormResetParams<FormData>) => void;
reset: (params?: FormResetParams<FormData>) => void;
/**
* 设置多组字段状态
*/
setFields?: (fields: FieldData[]) => void;
setFields: (fields: FieldData[]) => void;
/**
* 设置表单字段值
*/
setFieldsValue?: (field: Data) => void;
setFieldsValue: (field: Data) => void;
/**
* 设置自定义校验结果,如远程校验信息直接呈现。注意需要在组件挂载结束后使用该方法。`FormData` 指表单数据泛型
*/
setValidateMessage?: (message: FormValidateMessage<FormData>) => void;
setValidateMessage: (message: FormValidateMessage<FormData>) => void;
/**
* 提交表单,表单里面没有提交按钮`<button type=\"submit\" />`时可以使用该方法。`showErrorMessage` 表示是否在提交校验不通过时显示校验不通过的原因,默认显示。该方法会触发 `submit` 事件
*/
submit?: (params?: { showErrorMessage?: boolean }) => void;
submit: (params?: { showErrorMessage?: boolean }) => void;
/**
* 校验函数,包含错误文本提示等功能。泛型 `FormData` 表示表单数据 TS 类型。<br/>【关于参数】`params.fields` 表示校验字段,如果设置了 `fields`,本次校验将仅对这些字段进行校验。`params.trigger` 表示本次触发校验的范围,'params.trigger = blur' 表示只触发校验规则设定为 trigger='blur' 的字段,'params.trigger = change' 表示只触发校验规则设定为 trigger='change' 的字段,默认触发全范围校验。`params.showErrorMessage` 表示校验结束后是否显示错误文本提示,默认显示。<br />【关于返回值】返回值为 true 表示校验通过;如果校验不通过,返回值为校验结果列表
*/
validate?: (params?: FormValidateParams) => Promise<FormValidateResult<FormData>>;
validate: (params?: FormValidateParams) => Promise<FormValidateResult<FormData>>;
/**
* 纯净的校验函数,仅返回校验结果,不对组件进行任何操作。泛型 `FormData` 表示表单数据 TS 类型。参数和返回值含义同 `validate` 方法
*/
validateOnly?: (params?: Pick<FormValidateParams, 'fields' | 'trigger'>) => Promise<FormValidateResult<FormData>>;
validateOnly: (params?: Pick<FormValidateParams, 'fields' | 'trigger'>) => Promise<FormValidateResult<FormData>>;
}

export interface TdFormItemProps {
Expand Down