【发布时间】:2019-08-20 02:43:04
【问题描述】:
TypeScript 新手在这里。我有一个使用styled-components 的组件,我想将其转换为TypeScript。
import React from 'react'
import PropTypes from 'prop-types'
import styled from 'styled-components'
const propTypes = {
name: PropTypes.string.isRequired // https://material.io/tools/icons/?style=baseline
}
const Icon = styled(({name, className, ...props}) => <i className={`material-icons ${className}`} {...props}>{name}</i>)`
font-size: ${props => props.theme.sizeLarger};
`
Icon.propTypes = propTypes
export default Icon
我知道我可以用interface 替换我的propTypes
interface Props {
name: string
}
但是,TypeScript 抱怨我未声明 className。问题是,理想情况下,我希望将interface 用作开发人员可以提供的一种道具规范,而不必声明由styled-components 等库注入的className 或theme 之类的道具。
如何正确将此组件转换为 TypeScript?
【问题讨论】:
标签: reactjs typescript styled-components