pro-components icon indicating copy to clipboard operation
pro-components copied to clipboard

🐛[BUG] ProFormTextArea props 类型错误

Open zhnd opened this issue 3 months ago • 1 comments

提问前先看看:

https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md

🐛 bug 描述

ProFormTextArea 组件 rules props 类型无法正确推断,显示为 any

📷 复现步骤

https://stackblitz.com/edit/vitejs-vite-kmfivnxx?file=src%2FApp.tsx

🏞 期望结果

正确显示相关 props 类型

💻 复现代码

 <ProFormTextArea
      name="description"
      label="描述内容"
      placeholder="请输入描述内容"
      required
      rules={[
        () => ({
          validator(_, value) {
            console.log(value);
          },
        }),
      ]}
    />

© 版本信息

  • ProComponents 版本: 2.8.10
  • umi 版本
  • 浏览器环境
  • 开发环境 [mac OS]

🚑 其他信息

初步调查了一下,从package 产物来看,

Image

src/components 这个路径无法识别

zhnd avatar Sep 15 '25 10:09 zhnd

Hi @zhnd! I'm Dosu and I’m helping the pro-components team.

这个类型推断问题是已知的,主要原因是 pro-components 的部分类型引用路径(如 src/components)在发布包中无法识别,导致像 rules 这样的 props 类型被推断为 any。这个问题在 2.8.10 版本存在,属于打包和类型导出相关的 bug,而不是组件本身类型定义错误。相关讨论和案例可以参考 issue 9053

目前没有官方修复或 workaround。如果你需要类型提示,可以尝试升级或降级 pro-components 版本,有用户反馈部分版本类型定义正常。如果必须用当前版本,可以在代码里手动为 rules props 指定类型,例如:

import type { Rule } from 'rc-field-form/lib/interface';

<ProFormTextArea
  rules={[
    () => ({
      validator(_, value) {
        console.log(value);
      },
    }),
  ] as Rule[]}
/>

根本原因是类型文件输出引用了未包含在包里的内部路径,导致 IDE 无法解析类型链路,最终显示为 any。如果后续有修复建议关注 changelog 或相关 issue。

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

dosubot[bot] avatar Sep 15 '25 10:09 dosubot[bot]