如果非要用type呢,不用btnType

来源:4-8 小试牛刀 - Button 组件编码 第一部分

慕粉1470117225

2024-03-23

interface BaseButtonProps {
  className?: string;
  /**设置 Button 的禁用 */
  disabled?: boolean;
  /**设置 Button 的尺寸 */
  size?: ButtonSize;
  /**设置 Button 的类型 */
  type?: ButtonType;
  children: React.ReactNode;
  href?: string;
}
Button.defaultProps = {
  disabled: false,
  type: 'default',
};

可是这样就会报错图片描述
我看别的组件库都是直接使用type的

写回答

2回答

星光荡开宇宙

2024-04-02

用Omit就可以了

0
0

张轩

2024-03-24

同学你好

因为 

type NativeButtonProps = BaseButtonProps & ButtonHTMLAttributes<HTMLElement>
中的 ButtonHTMLAttributes 是有 type 这个原生属性的,你假如在使用type,
这里使用交叉类型就会造成 type 变成 undefined
你可以选择不使用 ButtonHTMLAttributes, 或者将其中的 type 属性 omit 掉,然后再进行交叉才可以。


0
0

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2124 学习 · 959 问题

查看课程