Skip to content

fix(form): narrow FormValidateResult boolean branch to true - #1049

Open
lnuxe wants to merge 1 commit into
TDesignOteam:mainfrom
lnuxe:fix/form-validate-result-type
Open

lnuxe wants to merge 1 commit into
TDesignOteam:mainfrom
lnuxe:fix/form-validate-result-type

Conversation

@lnuxe

@lnuxe lnuxe commented Oct 21, 2026 •

Copy link
Copy Markdown

描述 (Description)

修复 issue #1021 中提出的 FormValidateResult 类型定义过于宽泛的问题。

根据 Form 组件文档,校验通过时 validateResult 的值为 true,校验不通过时为校验结果列表(ValidateResultObj<T>),不存在值为 false 的情况。因此将类型定义从 boolean | ValidateResultObj<T> 缩窄为 true | ValidateResultObj<T>,避免对使用者和编译器造成误导。

变更内容 (Changes)

按照仓库数据流(db/TDesign.db → api.json → 各框架生成产物)同步修改:

  1. db/TDesign.db:更新 t_api 表中 Form 组件 submit 事件的 event_input(id=178)与 validate 的 event_output(id=1401、1773716995)共 3 条记录的类型定义文本
  2. packages/scripts/api.json:通过本地服务执行 npm run api:download 从数据库同步生成
  3. packages/products/:同步更新 7 个技术栈框架的 Form 组件产物(type.ts 7 个 + 中英文文档 14 个):
    • tdesign-vue(Vue2 PC)
    • tdesign-vue-next(Vue3 PC)
    • tdesign-react(React PC)
    • tdesign-mobile-vue(Vue Mobile)
    • tdesign-mobile-react(React Mobile)
    • tdesign-miniprogram(components + uniapp-components)

核心变更:

- export type FormValidateResult<T> = boolean | ValidateResultObj<T>;
+ export type FormValidateResult<T> = true | ValidateResultObj<T>;

已知影响 (Breaking Note)

对于依赖 FormValidateResult 类型并进行 validateResult === false 判断的代码,TypeScript 编译器将提示该分支不可达(此前文档与实际行为也不存在 false 分支,属于类型与文档不一致的修正)。实际运行时行为不变。

自查清单 (Checklist)

  • 仅修改 Form 组件相关内容,无其他组件的滞后变更混入
  • npm run lint 通过
  • db / api.json / products 三处数据保持一致
  • 中英文文档同步更新

Fixes #1021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[form] FormValidateResult 类型的 boolean 分支缩窄为 true

1 participant