The 'ExtendedButton' component returns an HTML button.
This button should be able to receive various button attributes, many of them you do not explicitly mention when typing the different props. Why would you not allow others to treat that component as an html button?
Let's say you did not mention 'disabled: boolean' and someone tried to use your component with the 'disabled' prop (expecting that to work since that is a button). TS would return an error:
"Property 'disabled' does not exist on type 'IntrinsicAttributes & IButtonProps & { children?: ReactNode; }"