Предыдущий ответ работал для меня, но только для того, чтобы добавить некоторую информацию, которая также была полезна в моем случае:
StyledComponents использует интерфейс "ThemedStyledFunction", который позволяет пользователю определять дополнительные типы проп.
Это означает, что вы можете создать интерфейс, подобный:
interface HeadingStyled {
emphasized: boolean;
}
и использовать его для компонента:
const HeadingStyled = styled("h2")<HeadingStyled>`
${props => props.emphasized && `
display: inline;
padding-top: 10px;
padding-right: 30px;
`}
`;
(который является более чистым способомреализовать то, что предложил @BoyWithSilverWings, если у вас есть несколько реквизитов)
Проверьте это обсуждение для получения более полной информации:
https://github.com/styled-components/styled-components/issues/1428#issuecomment-358621605