我应该如何为样式组件React Native组件指定子类型?

时间:2019-02-12 22:14:49

标签: reactjs typescript react-native styled-components

如果我创建这样的样式化组件:

const Wrapper = styled(View)``;

尝试使用它并将子级传递给它,我收到此TyepScript错误:

  

类型'{children:Element []; }'与type没有共同的属性   'IntrinsicAttributes&Pick,   “样式” | “ hitSlop” | “ onLayout” | “ pointerEvents” |   “ removeClippedSubviews” | “ testID” | “ nativeID” | ... 38更多... |   “ ref”>&Partial <...>,“样式” | ... 44更多... | “ ref”>&{...; }&   {...; }'。

除非我明确定义children属性的类型:

const Wrapper = styled(View)<{ children?: React.ReactNode }>``;

有更好的方法吗?或者这是我应该做的?似乎对每个单个组件执行此操作都是重复的,应该有更好的方法。

1 个答案:

答案 0 :(得分:0)

经过数周的烦恼之后,我最终决定询问StackOverflow ...我一经发现不到两个小时前就已经合并了PR,以解决此确切问题: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/32843

在4.1.9样式化组件中,children属性类型会自动添加到所有组件中。