Skip to content

Commit cbd2ee5

Browse files
SamChou19815facebook-github-bot
authored andcommitted
Eliminate $PropertyType and $ElementType in react-native (facebook#50262)
Summary: Pull Request resolved: facebook#50262 Prepare for their removal in Flow Changelog: [Internal] Reviewed By: gkz Differential Revision: D71823860 fbshipit-source-id: e1e18424ae731cd323999316a7f3a5d42f4b5b91
1 parent c920b7f commit cbd2ee5

File tree

26 files changed

+78
-174
lines changed

26 files changed

+78
-174
lines changed

packages/react-native-codegen/src/generators/components/GeneratePropsJavaPojo/PojoCollector.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,8 @@ class PojoCollector {
112112
}
113113
case 'ArrayTypeAnnotation': {
114114
const arrayTypeAnnotation = typeAnnotation;
115-
const elementType: $PropertyType<
116-
ComponentArrayTypeAnnotation,
117-
'elementType',
118-
> = arrayTypeAnnotation.elementType;
115+
const elementType: ComponentArrayTypeAnnotation['elementType'] =
116+
arrayTypeAnnotation.elementType;
119117

120118
const pojoElementType = (() => {
121119
switch (elementType.type) {

packages/react-native/Libraries/AppState/AppState.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class AppStateImpl {
107107
*/
108108
addEventListener<K: AppStateEvent>(
109109
type: K,
110-
handler: (...$ElementType<AppStateEventDefinitions, K>) => void,
110+
handler: (...AppStateEventDefinitions[K]) => void,
111111
): EventSubscription {
112112
const emitter = this._emitter;
113113
if (emitter == null) {

packages/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ const AccessibilityInfo = {
397397
addEventListener<K: $Keys<AccessibilityEventDefinitions>>(
398398
eventName: K,
399399
// $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423)
400-
handler: (...$ElementType<AccessibilityEventDefinitions, K>) => void,
400+
handler: (...AccessibilityEventDefinitions[K]) => void,
401401
): EventSubscription {
402402
const deviceEventName = EventNames.get(eventName);
403403
return deviceEventName == null

packages/react-native/Libraries/Components/Keyboard/Keyboard.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ class Keyboard {
148148
*/
149149
addListener<K: $Keys<KeyboardEventDefinitions>>(
150150
eventType: K,
151-
listener: (...$ElementType<KeyboardEventDefinitions, K>) => mixed,
151+
listener: (...KeyboardEventDefinitions[K]) => mixed,
152152
context?: mixed,
153153
): EventSubscription {
154154
return this._emitter.addListener(eventType, listener);

packages/react-native/Libraries/Components/Pressable/Pressable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import useAndroidRippleForView, {
2626
import * as React from 'react';
2727
import {useMemo, useRef, useState} from 'react';
2828

29-
type ViewStyleProp = $ElementType<React.ElementConfig<typeof View>, 'style'>;
29+
type ViewStyleProp = React.ElementConfig<typeof View>['style'];
3030

3131
export type PressableStateCallbackType = $ReadOnly<{
3232
pressed: boolean,

packages/react-native/Libraries/Components/ScrollView/ScrollView.js

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -134,19 +134,16 @@ export interface ScrollViewScrollToOptions {
134134

135135
// Public methods for ScrollView
136136
export interface ScrollViewImperativeMethods {
137-
+getScrollResponder: $PropertyType<ScrollView, 'getScrollResponder'>;
138-
+getScrollableNode: $PropertyType<ScrollView, 'getScrollableNode'>;
139-
+getInnerViewNode: $PropertyType<ScrollView, 'getInnerViewNode'>;
140-
+getInnerViewRef: $PropertyType<ScrollView, 'getInnerViewRef'>;
141-
+getNativeScrollRef: $PropertyType<ScrollView, 'getNativeScrollRef'>;
142-
+scrollTo: $PropertyType<ScrollView, 'scrollTo'>;
143-
+scrollToEnd: $PropertyType<ScrollView, 'scrollToEnd'>;
144-
+flashScrollIndicators: $PropertyType<ScrollView, 'flashScrollIndicators'>;
145-
+scrollResponderZoomTo: $PropertyType<ScrollView, 'scrollResponderZoomTo'>;
146-
+scrollResponderScrollNativeHandleToKeyboard: $PropertyType<
147-
ScrollView,
148-
'scrollResponderScrollNativeHandleToKeyboard',
149-
>;
137+
+getScrollResponder: ScrollView['getScrollResponder'];
138+
+getScrollableNode: ScrollView['getScrollableNode'];
139+
+getInnerViewNode: ScrollView['getInnerViewNode'];
140+
+getInnerViewRef: ScrollView['getInnerViewRef'];
141+
+getNativeScrollRef: ScrollView['getNativeScrollRef'];
142+
+scrollTo: ScrollView['scrollTo'];
143+
+scrollToEnd: ScrollView['scrollToEnd'];
144+
+flashScrollIndicators: ScrollView['flashScrollIndicators'];
145+
+scrollResponderZoomTo: ScrollView['scrollResponderZoomTo'];
146+
+scrollResponderScrollNativeHandleToKeyboard: ScrollView['scrollResponderScrollNativeHandleToKeyboard'];
150147
}
151148

152149
export type DecelerationRateType = 'fast' | 'normal' | number;

packages/react-native/Libraries/EventEmitter/NativeEventEmitter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export default class NativeEventEmitter<
8080

8181
addListener<TEvent: $Keys<TEventToArgsMap>>(
8282
eventType: TEvent,
83-
listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,
83+
listener: (...args: TEventToArgsMap[TEvent]) => mixed,
8484
context?: mixed,
8585
): EventSubscription {
8686
this._nativeModule?.addListener(eventType);
@@ -104,7 +104,7 @@ export default class NativeEventEmitter<
104104

105105
emit<TEvent: $Keys<TEventToArgsMap>>(
106106
eventType: TEvent,
107-
...args: $ElementType<TEventToArgsMap, TEvent>
107+
...args: TEventToArgsMap[TEvent]
108108
): void {
109109
// Generally, `RCTDeviceEventEmitter` is directly invoked. But this is
110110
// included for completeness.

packages/react-native/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ export default class NativeEventEmitter<
2424
{
2525
addListener<TEvent: $Keys<TEventToArgsMap>>(
2626
eventType: TEvent,
27-
listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,
27+
listener: (...args: TEventToArgsMap[TEvent]) => mixed,
2828
context?: mixed,
2929
): EventSubscription {
3030
return RCTDeviceEventEmitter.addListener(eventType, listener, context);
3131
}
3232

3333
emit<TEvent: $Keys<TEventToArgsMap>>(
3434
eventType: TEvent,
35-
...args: $ElementType<TEventToArgsMap, TEvent>
35+
...args: TEventToArgsMap[TEvent]
3636
): void {
3737
RCTDeviceEventEmitter.emit(eventType, ...args);
3838
}

packages/react-native/Libraries/Interaction/PanResponder.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ const PanResponder = {
333333
*/
334334
_updateGestureStateOnMove(
335335
gestureState: PanResponderGestureState,
336-
touchHistory: $PropertyType<GestureResponderEvent, 'touchHistory'>,
336+
touchHistory: GestureResponderEvent['touchHistory'],
337337
) {
338338
gestureState.numberActiveTouches = touchHistory.numberActiveTouches;
339339
gestureState.moveX = currentCentroidXOfTouchesChangedAfter(

packages/react-native/Libraries/Linking/Linking.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class LinkingImpl extends NativeEventEmitter<LinkingEventDefinitions> {
3434
*/
3535
addEventListener<K: $Keys<LinkingEventDefinitions>>(
3636
eventType: K,
37-
listener: (...$ElementType<LinkingEventDefinitions, K>) => mixed,
37+
listener: (...LinkingEventDefinitions[K]) => mixed,
3838
): EventSubscription {
3939
return this.addListener(eventType, listener);
4040
}

0 commit comments

Comments
 (0)