Overwrite Types

This is a simple example how to overwrite types from a library, when you won’t to use pick or omit you should use this strategy

declare module '@maas-components/button' {  
export interface ButtonProps {    
/**    
 * The content of the button.     
*/    
children?: React.ReactNode   
 /**    
 * The color of the component. It supports those theme colors that make sense for this component.    
 */    
color?: 'inherit' | 'primary' | 'secondary' | 'danger' | 'success'    
/**     
* If `true`, the button will be disabled.     
*/    
disabled?: boolean    
/**     
* If `true`, no elevation is used.     
*/    
disableElevation?: boolean    
/**     
* If `true`, the  keyboard focus ripple will be disabled.     
*/    
disableFocusRipple?: boolean    
/**     
* Element placed after the children.     
*/    
endIcon?: React.ReactNode    
/**     
* If `true`, the button will take up the full width of its container.     
*/    
fullWidth?: boolean    
/**     
* The URL to link to when the button is clicked.     
* If defined, an `a` element will be used as the root node.     
*/    
href?: string    
/**     
* The size of the button.     
* `small` is equivalent to the dense button styling.     
*/    
size?: 'small' | 'medium' | 'large'    
/**     
* Element placed before the children.     
*/    startIcon?: React.ReactNode    
/**     
* The variant to use.     
*/    
variant?: 'text' | 'outlined' | 'contained'    
/**     
* Can be set to circle, square or omitted.     
*/    
shape?: 'circle' | 'square'    
/**     
* The styles in className.     
*/    
className?: string    
type?: 'submit'    
onClick?: React.MouseEventHandler<HTMLButtonElement>  
}
  // eslint-disable-next-line react/prefer-stateless-function  declare const Button: React.FC<ButtonProps>
  export default Button}

@types/@maas-components/index.d.ts