🐛[BUG] ProFormTextArea props 类型错误
提问前先看看:
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 产物来看,
src/components 这个路径无法识别
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