【发布时间】:2019-10-27 11:36:27
【问题描述】:
使用styled-components,使用普通的 React.js 我可以这样做:
const Container = styled.div({
userSelect: `none !important`,
})
但是使用 TypeScript 我得到了错误:
Argument of type '{ userSelect: string; }' is not assignable to parameter of type 'TemplateStringsArray'.
Object literal may only specify known properties, and 'userSelect' does not exist in type 'TemplateStringsArray'.ts(2345)
解决此问题的最佳方法是什么?
我不想使用styled.div 模板字符串方法,因为我发现它不太灵活。
例如,对于模板字符串,我们不能这样做:
const flex = {
flex: display: flex,
col: flexDirection: `column`
}
const FlexRow = styled.div({
...flex.flex,
})
const FlexCol = styled.div({
...flex.flex,
...flex.col,
})
【问题讨论】:
-
你在使用什么
styled库?您能否提供其文档或 NPM 包的链接。 -
糟糕,抱歉。现已添加。
-
还有一些 ts 类型不准确...
-
如果里面没有变量,为什么要使用模板字符串?为什么不只是普通的字符串?或者这只是一个例子?
-
如果你的意思是
Container,它应该不会有什么不同。我更喜欢反引号而不是单引号。这只是一个例子:)
标签: javascript reactjs typescript styled-components