diff --git a/Libraries/Components/Touchable/TouchableOpacity.js b/Libraries/Components/Touchable/TouchableOpacity.js index 3ecce7234..f860337e0 100644 --- a/Libraries/Components/Touchable/TouchableOpacity.js +++ b/Libraries/Components/Touchable/TouchableOpacity.js @@ -23,10 +23,25 @@ const createReactClass = require('create-react-class'); const ensurePositiveDelayProps = require('ensurePositiveDelayProps'); const flattenStyle = require('flattenStyle'); +import type {Props as TouchableWithoutFeedbackProps} from 'TouchableWithoutFeedback'; +import type {ViewStyleProp} from 'StyleSheet'; + type Event = Object; const PRESS_RETENTION_OFFSET = {top: 20, left: 20, right: 20, bottom: 30}; +type TVProps = $ReadOnly<{| + hasTVPreferredFocus?: ?boolean, + tvParallaxProperties?: ?Object, +|}>; + +type Props = $ReadOnly<{| + ...TouchableWithoutFeedbackProps, + ...TVProps, + activeOpacity?: ?number, + style?: ?ViewStyleProp, +|}>; + /** * A wrapper for making views respond properly to touches. * On press down, the opacity of the wrapped view is decreased, dimming it. @@ -115,7 +130,7 @@ const PRESS_RETENTION_OFFSET = {top: 20, left: 20, right: 20, bottom: 30}; * ``` * */ -const TouchableOpacity = createReactClass({ +const TouchableOpacity = ((createReactClass({ displayName: 'TouchableOpacity', mixins: [TimerMixin, Touchable.Mixin, NativeMethodsMixin], @@ -267,6 +282,6 @@ const TouchableOpacity = createReactClass({ ); }, -}); +}): any): React.ComponentType); module.exports = TouchableOpacity;