reactjs - 如何处理 TS React 项目中的意外道具?
问题描述
例如,我有一个自定义按钮组件。
<button type={type} className={classes} {...props}>
{!!children && <span>{children}</span>}
</button>
我通过了其他我不想用破坏来预测的道具。但是当我尝试传递时,TS 会抛出一个错误,例如,disabled prop 因为它没有在 TS 接口中定义。
有什么办法可以解决这个问题吗?或者唯一的方法是在界面中定义所有可能的优点?
解决方案
对于您的特定情况,您的自定义按钮道具可以扩展 HTML 按钮道具
interface MyButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
children: React.ReactNode;
}
function MyButton({ children, ...props }: MyButtonProps) {
return <button {...props}>{children}</props>
}
推荐阅读
- java - JavaFX 检查窗格上动画形状之间的碰撞 - 多次碰撞
- r - 如何使误差线与 R Plotly 中的数据匹配
- c++ - 在 C++ 中,为什么有些编译器拒绝将只包含一个 double 的对象放入寄存器?
- fortran - Fortran 中的标量值到底是什么,如何相互转换
- exception - DDD,CQRS,EventSourcing 中错误的不连贯事件流中的逻辑异常?
- javascript - Webpack 4 不会在没有 babel-preset-es2015 的情况下创建 CSS 文件
- docker - 在容器名称上使用 glob / 通配符运行 docker 命令
- c# - 如何删除除一个之外的所有控件?
- css - 为什么不 justify-content: 拉伸工作?
- python - 遗传算法学习最适合指数函数