Насколько мне известно, это пока не совсем возможно, и, к сожалению, не охватывается поддержкой defaultProps
, добавленной в TS 3.0 (которая применяется только к обычным классам компонентов и , я думаю, функционален компоненты). Другие не стесняются поправлять меня, если я ошибаюсь.
Есть и другие способы написать это. Вот как я обычно это делаю:
export interface IButton {
variant?: 'action' | 'secondary';
}
const variantStyles = {
action: css`
color: blue;
`,
secondary: css`
color: gray;
`,
};
export const Button = styled('button')<IButton>`
background-color: #fff;
${props => variantStyles[props.variant || 'action']};
`;