styled-components - 如何使用 JSDoc 为 styled.div 提供属性类型?
问题描述
当我使用 VS Code 时,我可以添加一个jsconfig.json
文件以通过 IntelliSense 获得类型帮助。我对切换到 TypeScript 不感兴趣,所以我在需要的地方使用 JSDoc 来注释类型。
我发现我可以像这样向给定组件添加道具:
const StyledNode = styled(
/** @type {React.ComponentType<React.ComponentProps<Box> & {level: number}>} */ (Box)
)`
margin-left: ${p => p.level * 3}em;
`
这是零成本:在使用 StyledNode 以及level
在 CSS 中使用时,我都会获得类型帮助。
但是,如果我想设置一个常规的样式div
,我必须这样做
const StyledNode = styled(
/** @type {React.ComponentType<React.DomAttributes & {level: number}>} */
(React.forwardRef((p, ref) => <div ref={ref} {...p} />))
)`
margin-left: ${p => p.level * 3}em;
`
这对我来说似乎不是零成本。问题是我看不到styled<type>
通过 JSDoc 传递类型参数的方法。
向中的 css 模板函数提供参数类型的最佳方式是styled.div
什么?
解决方案
推荐阅读
- visual-studio-code - 打开文件夹时停止 vscode 打开以前的选项卡
- python - 将 If 语句添加到信号无法正常工作
- django-models - DRF - int() 参数必须是字符串、类似字节的对象或数字,而不是“DeferredAttribute”
- javascript - window.matchMedia 不是函数
- swift - 因为我们已经有 Comparable,所以在 Swift(4.1 及更高版本)中 Equatable 是多余的吗?
- python - 如何使用时间和日期输入进行过滤和分类
- r - 如何删除字符串中逗号之前的所有内容?
- sql - 如何连接两个表并获取数据
- python - for 循环在运行后将值重置为 10
- javascript - 在 React Native 中使用文本转语音