Skip to content

Commit de7f69a

Browse files
draperunnerfacebook-github-bot
authored andcommitted
Fix type of exported Touchables: ComponentType -> AbstractComponent (#28737)
Summary: Fixes #28726 When importing TouchableOpacity, it is treated as any by Flow. Replacing ComponentType with AbstractComponent works. The [Flow documentation](https://flow.org/en/docs/react/types/#toc-react-componenttype) says the following about ComponentType: > Note: In 0.89.0+, React.ComponentType is an alias for React.AbstractComponent<Config, any>, which represents a component with config type Config and any instance type. So I'm thinking that since the instance type is treated as any with ComponentType, Flow treats TouchableOpacity as any as well. ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [General] [Fixed] - Fix Touchable{Opacity,Bounce,Highlight} being exported as `any` (Flow) Pull Request resolved: #28737 Test Plan: I have done the same changes to react-native in my project's node_modules and seen that the components TouchableOpacity went from any to AbstractComponent with some props. Now I have a bunch of errors because I'm sending in wrong props to some touchables, which is good! Reviewed By: cpojer Differential Revision: D21362601 Pulled By: TheSavior fbshipit-source-id: 5b98cc79eaef034eccdb7f47242f9f44be2ef2b8
1 parent 4459c08 commit de7f69a

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

Libraries/Components/Touchable/TouchableBounce.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -214,4 +214,4 @@ class TouchableBounce extends React.Component<Props, State> {
214214

215215
module.exports = (React.forwardRef((props, hostRef) => (
216216
<TouchableBounce {...props} hostRef={hostRef} />
217-
)): React.ComponentType<$ReadOnly<$Diff<Props, {|hostRef: mixed|}>>>);
217+
)): React.AbstractComponent<$ReadOnly<$Diff<Props, {|hostRef: mixed|}>>>);

Libraries/Components/Touchable/TouchableHighlight.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -380,4 +380,4 @@ class TouchableHighlight extends React.Component<Props, State> {
380380

381381
module.exports = (React.forwardRef((props, hostRef) => (
382382
<TouchableHighlight {...props} hostRef={hostRef} />
383-
)): React.ComponentType<$ReadOnly<$Diff<Props, {|hostRef: mixed|}>>>);
383+
)): React.AbstractComponent<$ReadOnly<$Diff<Props, {|hostRef: mixed|}>>>);

Libraries/Components/Touchable/TouchableOpacity.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -299,4 +299,4 @@ class TouchableOpacity extends React.Component<Props, State> {
299299

300300
module.exports = (React.forwardRef((props, hostRef) => (
301301
<TouchableOpacity {...props} hostRef={hostRef} />
302-
)): React.ComponentType<$ReadOnly<$Diff<Props, {|hostRef: mixed|}>>>);
302+
)): React.AbstractComponent<$ReadOnly<$Diff<Props, {|hostRef: mixed|}>>>);

0 commit comments

Comments
 (0)