【发布时间】:2021-10-29 05:16:18
【问题描述】:
我正在尝试为样式组件的组合创建一个接口:
import styled from "styled-components"
const Title = styled.div``
const TitleNumber = styled.div``
const TitleNumberDigit = styled.div``
const TitleName: React.ComponentType = styled.div``
interface IUiStepTitleNumber extends React.ComponentType {
Digit: React.ComponentType
}
interface IUiStepTitle extends React.ComponentType {
Number: IUiStepTitleNumber
Name: React.ComponentType
}
const UiStepTitle : IUiStepTitle = Object.assign(Title, {
Number: Object.assign(TitleNumber, {
Digit: TitleNumberDigit,
}),
Name: TitleName,
})
export default UiStepTitle
对于这个用例:
<UiStepTitle>
<UiStepTitle.Number>
<UiStepTitle.Number.Digit>
{stepNumber}
</UiStepTitle.Number.Digit>
</UiStepTitle.Number>
<UiStepTitle.Name>{stepTitle}</UiStepTitle.Name>
</UiStepTitle>
但是我的打字稿出错了
An interface can only extend an object type or intersection of object types with statically known members
如何正确组合这样的接口?
【问题讨论】:
标签: javascript reactjs typescript styled-components