straightford explicit types (#25253)
Jan Kassens committed
Sep 13, 2022 at 17:57 UTC
346c7d4c43a0717302d446da9e7423a8e28d8996
52 files changed
+175
-139
packages/react-debug-tools/src/ReactDebugHooks.js
+1
-1
@@ -783,7 +783,7 @@ export function inspectHooksOfFiber(
783
fiber: Fiber,
784
currentDispatcher: ?CurrentDispatcherRef,
785
includeHooksSource?: boolean = false,
786
-) {
786
+): HooksTree {
787
// DevTools will pass the current renderer's injected dispatcher.
788
// Other apps might compile debug hooks as part of their app though.
789
if (currentDispatcher == null) {
packages/react-dom/src/client/ReactDOMHostConfig.js
+5
-3
@@ -680,7 +680,7 @@ export function clearContainer(container: Container): void {
680
681
export const supportsHydration = true;
682
683
-export function isHydratableResource(type: string, props: Props) {
683
+export function isHydratableResource(type: string, props: Props): boolean {
684
return (
685
type === 'link' &&
686
typeof (props: any).precedence === 'string' &&
@@ -726,11 +726,13 @@ export function canHydrateSuspenseInstance(
726
return ((instance: any): SuspenseInstance);
727
}
728
729
-export function isSuspenseInstancePending(instance: SuspenseInstance) {
729
+export function isSuspenseInstancePending(instance: SuspenseInstance): boolean {
730
return instance.data === SUSPENSE_PENDING_START_DATA;
731
}
732
733
-export function isSuspenseInstanceFallback(instance: SuspenseInstance) {
733
+export function isSuspenseInstanceFallback(
734
+ instance: SuspenseInstance,
735
+): boolean {
736
return instance.data === SUSPENSE_FALLBACK_START_DATA;
737
}
738
packages/react-dom/src/client/inputValueTracking.js
+1
-1
@@ -123,7 +123,7 @@ export function track(node: ElementWithValueTracker) {
123
node._valueTracker = trackValueOnNode(node);
124
}
125
126
-export function updateValueIfChanged(node: ElementWithValueTracker) {
126
+export function updateValueIfChanged(node: ElementWithValueTracker): boolean {
127
if (!node) {
128
return false;
129
}
packages/react-dom/src/events/checkPassiveEvents.js
+1
-1
@@ -9,7 +9,7 @@
9
10
import {canUseDOM} from 'shared/ExecutionEnvironment';
11
12
-export let passiveBrowserEventsSupported = false;
12
+export let passiveBrowserEventsSupported: boolean = false;
13
14
// Check if browser support events with passive listeners
15
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support
packages/react-dom/src/shared/DOMProperty.js
+2
-2
@@ -63,10 +63,10 @@ export type PropertyInfo = {
63
export const ATTRIBUTE_NAME_START_CHAR =
64
':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
65
/* eslint-enable max-len */
66
-export const ATTRIBUTE_NAME_CHAR =
66
+export const ATTRIBUTE_NAME_CHAR: string =
67
ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
68
69
-export const VALID_ATTRIBUTE_NAME_REGEX = new RegExp(
69
+export const VALID_ATTRIBUTE_NAME_REGEX: RegExp = new RegExp(
70
'^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$',
71
);
72
packages/react-dom/src/shared/isCustomComponent.js
+1
-1
@@ -7,7 +7,7 @@
7
* @flow
8
*/
9
10
-function isCustomComponent(tagName: string, props: Object) {
10
+function isCustomComponent(tagName: string, props: Object): boolean {
11
if (tagName.indexOf('-') === -1) {
12
return typeof props.is === 'string';
13
}
packages/react-is/src/ReactIs.js
+14
-14
@@ -82,7 +82,7 @@ let hasWarnedAboutDeprecatedIsAsyncMode = false;
82
let hasWarnedAboutDeprecatedIsConcurrentMode = false;
83
84
// AsyncMode should be deprecated
85
-export function isAsyncMode(object: any) {
85
+export function isAsyncMode(object: any): boolean {
86
if (__DEV__) {
87
if (!hasWarnedAboutDeprecatedIsAsyncMode) {
88
hasWarnedAboutDeprecatedIsAsyncMode = true;
@@ -95,7 +95,7 @@ export function isAsyncMode(object: any) {
95
}
96
return false;
97
}
98
-export function isConcurrentMode(object: any) {
98
+export function isConcurrentMode(object: any): boolean {
99
if (__DEV__) {
100
if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
101
hasWarnedAboutDeprecatedIsConcurrentMode = true;
@@ -108,43 +108,43 @@ export function isConcurrentMode(object: any) {
108
}
109
return false;
110
}
111
-export function isContextConsumer(object: any) {
111
+export function isContextConsumer(object: any): boolean {
112
return typeOf(object) === REACT_CONTEXT_TYPE;
113
}
114
-export function isContextProvider(object: any) {
114
+export function isContextProvider(object: any): boolean {
115
return typeOf(object) === REACT_PROVIDER_TYPE;
116
}
117
-export function isElement(object: any) {
117
+export function isElement(object: any): boolean {
118
return (
119
typeof object === 'object' &&
120
object !== null &&
121
object.$$typeof === REACT_ELEMENT_TYPE
122
);
123
}
124
-export function isForwardRef(object: any) {
124
+export function isForwardRef(object: any): boolean {
125
return typeOf(object) === REACT_FORWARD_REF_TYPE;
126
}
127
-export function isFragment(object: any) {
127
+export function isFragment(object: any): boolean {
128
return typeOf(object) === REACT_FRAGMENT_TYPE;
129
}
130
-export function isLazy(object: any) {
130
+export function isLazy(object: any): boolean {
131
return typeOf(object) === REACT_LAZY_TYPE;
132
}
133
-export function isMemo(object: any) {
133
+export function isMemo(object: any): boolean {
134
return typeOf(object) === REACT_MEMO_TYPE;
135
}
136
-export function isPortal(object: any) {
136
+export function isPortal(object: any): boolean {
137
return typeOf(object) === REACT_PORTAL_TYPE;
138
}
139
-export function isProfiler(object: any) {
139
+export function isProfiler(object: any): boolean {
140
return typeOf(object) === REACT_PROFILER_TYPE;
141
}
142
-export function isStrictMode(object: any) {
142
+export function isStrictMode(object: any): boolean {
143
return typeOf(object) === REACT_STRICT_MODE_TYPE;
144
}
145
-export function isSuspense(object: any) {
145
+export function isSuspense(object: any): boolean {
146
return typeOf(object) === REACT_SUSPENSE_TYPE;
147
}
148
-export function isSuspenseList(object: any) {
148
+export function isSuspenseList(object: any): boolean {
149
return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
150
}
packages/react-reconciler/src/ReactCurrentFiber.js
+1
-1
@@ -73,7 +73,7 @@ export function setIsRendering(rendering: boolean) {
73
}
74
}
75
76
-export function getIsRendering() {
76
+export function getIsRendering(): void | boolean {
77
if (__DEV__) {
78
return isRendering;
79
}
packages/react-reconciler/src/ReactEventPriorities.js
+1
-1
@@ -58,7 +58,7 @@ export function getCurrentUpdatePriority(): EventPriority {
58
: (getCurrentUpdatePriority_old(): any);
59
}
60
61
-export function setCurrentUpdatePriority(priority: EventPriority) {
61
+export function setCurrentUpdatePriority(priority: EventPriority): void {
62
return enableNewReconciler
63
? setCurrentUpdatePriority_new((priority: any))
64
: setCurrentUpdatePriority_old((priority: any));
packages/react-reconciler/src/ReactFiber.new.js
+5
-2
@@ -225,7 +225,7 @@ function shouldConstruct(Component: Function) {
225
return !!(prototype && prototype.isReactComponent);
226
}
227
228
-export function isSimpleFunctionComponent(type: any) {
228
+export function isSimpleFunctionComponent(type: any): boolean {
229
return (
230
typeof type === 'function' &&
231
!shouldConstruct(type) &&
@@ -355,7 +355,10 @@ export function createWorkInProgress(current: Fiber, pendingProps: any): Fiber {
355
}
356
357
// Used to reuse a Fiber for a second pass.
358
-export function resetWorkInProgress(workInProgress: Fiber, renderLanes: Lanes) {
358
+export function resetWorkInProgress(
359
+ workInProgress: Fiber,
360
+ renderLanes: Lanes,
361
+): Fiber {
362
// This resets the Fiber to what createFiber or createWorkInProgress would
363
// have set the values to before during the first pass. Ideally this wouldn't
364
// be necessary but unfortunately many code paths reads from the workInProgress
packages/react-reconciler/src/ReactFiber.old.js
+5
-2
@@ -225,7 +225,7 @@ function shouldConstruct(Component: Function) {
225
return !!(prototype && prototype.isReactComponent);
226
}
227
228
-export function isSimpleFunctionComponent(type: any) {
228
+export function isSimpleFunctionComponent(type: any): boolean {
229
return (
230
typeof type === 'function' &&
231
!shouldConstruct(type) &&
@@ -355,7 +355,10 @@ export function createWorkInProgress(current: Fiber, pendingProps: any): Fiber {
355
}
356
357
// Used to reuse a Fiber for a second pass.
358
-export function resetWorkInProgress(workInProgress: Fiber, renderLanes: Lanes) {
358
+export function resetWorkInProgress(
359
+ workInProgress: Fiber,
360
+ renderLanes: Lanes,
361
+): Fiber {
362
// This resets the Fiber to what createFiber or createWorkInProgress would
363
// have set the values to before during the first pass. Ideally this wouldn't
364
// be necessary but unfortunately many code paths reads from the workInProgress
packages/react-reconciler/src/ReactFiberAct.new.js
+1
-1
@@ -15,7 +15,7 @@ import {warnsIfNotActing} from './ReactFiberHostConfig';
15
16
const {ReactCurrentActQueue} = ReactSharedInternals;
17
18
-export function isLegacyActEnvironment(fiber: Fiber) {
18
+export function isLegacyActEnvironment(fiber: Fiber): boolean {
19
if (__DEV__) {
20
// Legacy mode. We preserve the behavior of React 17's act. It assumes an
21
// act environment whenever `jest` is defined, but you can still turn off
packages/react-reconciler/src/ReactFiberAct.old.js
+1
-1
@@ -15,7 +15,7 @@ import {warnsIfNotActing} from './ReactFiberHostConfig';
15
16
const {ReactCurrentActQueue} = ReactSharedInternals;
17
18
-export function isLegacyActEnvironment(fiber: Fiber) {
18
+export function isLegacyActEnvironment(fiber: Fiber): boolean {
19
if (__DEV__) {
20
// Legacy mode. We preserve the behavior of React 17's act. It assumes an
21
// act environment whenever `jest` is defined, but you can still turn off
packages/react-reconciler/src/ReactFiberBeginWork.new.js
+2
-2
@@ -281,7 +281,7 @@ let didWarnAboutModulePatternComponent;
281
let didWarnAboutContextTypeOnFunctionComponent;
282
let didWarnAboutGetDerivedStateOnFunctionComponent;
283
let didWarnAboutFunctionRefs;
284
-export let didWarnAboutReassigningProps;
284
+export let didWarnAboutReassigningProps: boolean;
285
let didWarnAboutRevealOrder;
286
let didWarnAboutTailOptions;
287
let didWarnAboutDefaultPropsOnFunctionComponent;
@@ -3479,7 +3479,7 @@ export function markWorkInProgressReceivedUpdate() {
3479
didReceiveUpdate = true;
3480
}
3481
3482
-export function checkIfWorkInProgressReceivedUpdate() {
3482
+export function checkIfWorkInProgressReceivedUpdate(): boolean {
3483
return didReceiveUpdate;
3484
}
3485
packages/react-reconciler/src/ReactFiberBeginWork.old.js
+2
-2
@@ -281,7 +281,7 @@ let didWarnAboutModulePatternComponent;
281
let didWarnAboutContextTypeOnFunctionComponent;
282
let didWarnAboutGetDerivedStateOnFunctionComponent;
283
let didWarnAboutFunctionRefs;
284
-export let didWarnAboutReassigningProps;
284
+export let didWarnAboutReassigningProps: boolean;
285
let didWarnAboutRevealOrder;
286
let didWarnAboutTailOptions;
287
let didWarnAboutDefaultPropsOnFunctionComponent;
@@ -3479,7 +3479,7 @@ export function markWorkInProgressReceivedUpdate() {
3479
didReceiveUpdate = true;
3480
}
3481
3482
-export function checkIfWorkInProgressReceivedUpdate() {
3482
+export function checkIfWorkInProgressReceivedUpdate(): boolean {
3483
return didReceiveUpdate;
3484
}
3485
packages/react-reconciler/src/ReactFiberClassUpdateQueue.new.js
+1
-1
@@ -164,7 +164,7 @@ let hasForceUpdate = false;
164
165
let didWarnUpdateInsideUpdate;
166
let currentlyProcessingQueue;
167
-export let resetCurrentlyProcessingQueue;
167
+export let resetCurrentlyProcessingQueue: () => void;
168
if (__DEV__) {
169
didWarnUpdateInsideUpdate = false;
170
currentlyProcessingQueue = null;
packages/react-reconciler/src/ReactFiberClassUpdateQueue.old.js
+1
-1
@@ -164,7 +164,7 @@ let hasForceUpdate = false;
164
165
let didWarnUpdateInsideUpdate;
166
let currentlyProcessingQueue;
167
-export let resetCurrentlyProcessingQueue;
167
+export let resetCurrentlyProcessingQueue: () => void;
168
if (__DEV__) {
169
didWarnUpdateInsideUpdate = false;
170
currentlyProcessingQueue = null;
packages/react-reconciler/src/ReactFiberCommitWork.new.js
+1
-1
@@ -320,7 +320,7 @@ let shouldFireAfterActiveInstanceBlur: boolean = false;
320
export function commitBeforeMutationEffects(
321
root: FiberRoot,
322
firstChild: Fiber,
323
-) {
323
+): boolean {
324
focusedInstanceHandle = prepareForCommit(root.containerInfo);
325
326
nextEffect = firstChild;
packages/react-reconciler/src/ReactFiberCommitWork.old.js
+1
-1
@@ -320,7 +320,7 @@ let shouldFireAfterActiveInstanceBlur: boolean = false;
320
export function commitBeforeMutationEffects(
321
root: FiberRoot,
322
firstChild: Fiber,
323
-) {
323
+): boolean {
324
focusedInstanceHandle = prepareForCommit(root.containerInfo);
325
326
nextEffect = firstChild;
packages/react-reconciler/src/ReactFiberHiddenContext.new.js
+1
-1
@@ -66,6 +66,6 @@ export function popHiddenContext(fiber: Fiber): void {
66
pop(prevRenderLanesStackCursor, fiber);
67
}
68
69
-export function isCurrentTreeHidden() {
69
+export function isCurrentTreeHidden(): boolean {
70
return currentTreeHiddenStackCursor.current !== null;
71
}
packages/react-reconciler/src/ReactFiberHiddenContext.old.js
+1
-1
@@ -66,6 +66,6 @@ export function popHiddenContext(fiber: Fiber): void {
66
pop(prevRenderLanesStackCursor, fiber);
67
}
68
69
-export function isCurrentTreeHidden() {
69
+export function isCurrentTreeHidden(): boolean {
70
return currentTreeHiddenStackCursor.current !== null;
71
}
packages/react-reconciler/src/ReactFiberHooks.new.js
+1
-1
@@ -571,7 +571,7 @@ export function renderWithHooks<Props, SecondArg>(
571
return children;
572
}
573
574
-export function checkDidRenderIdHook() {
574
+export function checkDidRenderIdHook(): boolean {
575
// This should be called immediately after every renderWithHooks call.
576
// Conceptually, it's part of the return value of renderWithHooks; it's only a
577
// separate function to avoid using an array tuple.
packages/react-reconciler/src/ReactFiberHooks.old.js
+1
-1
@@ -571,7 +571,7 @@ export function renderWithHooks<Props, SecondArg>(
571
return children;
572
}
573
574
-export function checkDidRenderIdHook() {
574
+export function checkDidRenderIdHook(): boolean {
575
// This should be called immediately after every renderWithHooks call.
576
// Conceptually, it's part of the return value of renderWithHooks; it's only a
577
// separate function to avoid using an array tuple.
packages/react-reconciler/src/ReactFiberHotReloading.js
+15
-8
@@ -7,6 +7,8 @@
7
* @flow
8
*/
9
10
+import type {Fiber} from './ReactInternalTypes';
11
+import type {ReactElement} from '../../shared/ReactElementType';
12
import type {Instance} from './ReactFiberHostConfig';
13
import type {FiberRoot} from './ReactInternalTypes';
14
import type {ReactNodeList} from 'shared/ReactTypes';
@@ -58,9 +60,9 @@ export type FindHostInstancesForRefresh = (
60
families: Array<Family>,
61
) => Set<Instance>;
62
61
-export const setRefreshHandler = enableNewReconciler
62
- ? setRefreshHandler_new
63
- : setRefreshHandler_old;
63
+export const setRefreshHandler: (
64
+ handler: RefreshHandler | null,
65
+) => void = enableNewReconciler ? setRefreshHandler_new : setRefreshHandler_old;
66
export const resolveFunctionForHotReloading = enableNewReconciler
67
? resolveFunctionForHotReloading_new
68
: resolveFunctionForHotReloading_old;
@@ -70,18 +72,23 @@ export const resolveClassForHotReloading = enableNewReconciler
72
export const resolveForwardRefForHotReloading = enableNewReconciler
73
? resolveForwardRefForHotReloading_new
74
: resolveForwardRefForHotReloading_old;
73
-export const isCompatibleFamilyForHotReloading = enableNewReconciler
75
+export const isCompatibleFamilyForHotReloading: (
76
+ fiber: Fiber,
77
+ element: ReactElement,
78
+) => boolean = enableNewReconciler
79
? isCompatibleFamilyForHotReloading_new
80
: isCompatibleFamilyForHotReloading_old;
76
-export const markFailedErrorBoundaryForHotReloading = enableNewReconciler
81
+export const markFailedErrorBoundaryForHotReloading: (
82
+ fiber: Fiber,
83
+) => void = enableNewReconciler
84
? markFailedErrorBoundaryForHotReloading_new
85
: markFailedErrorBoundaryForHotReloading_old;
79
-export const scheduleRefresh = enableNewReconciler
86
+export const scheduleRefresh: ScheduleRefresh = enableNewReconciler
87
? scheduleRefresh_new
88
: scheduleRefresh_old;
82
-export const scheduleRoot = enableNewReconciler
89
+export const scheduleRoot: ScheduleRoot = enableNewReconciler
90
? scheduleRoot_new
91
: scheduleRoot_old;
85
-export const findHostInstancesForRefresh = enableNewReconciler
92
+export const findHostInstancesForRefresh: FindHostInstancesForRefresh = enableNewReconciler
93
? findHostInstancesForRefresh_new
94
: findHostInstancesForRefresh_old;
packages/react-reconciler/src/ReactFiberHydrationContext.new.js
+2
-2
@@ -109,7 +109,7 @@ export function markDidThrowWhileHydratingDEV() {
109
}
110
}
111
112
-export function didSuspendOrErrorWhileHydratingDEV() {
112
+export function didSuspendOrErrorWhileHydratingDEV(): boolean {
113
if (__DEV__) {
114
return didSuspendOrErrorDEV;
115
}
@@ -685,7 +685,7 @@ function popHydrationState(fiber: Fiber): boolean {
685
return true;
686
}
687
688
-function hasUnhydratedTailNodes() {
688
+function hasUnhydratedTailNodes(): boolean {
689
return isHydrating && nextHydratableInstance !== null;
690
}
691
packages/react-reconciler/src/ReactFiberHydrationContext.old.js
+2
-2
@@ -109,7 +109,7 @@ export function markDidThrowWhileHydratingDEV() {
109
}
110
}
111
112
-export function didSuspendOrErrorWhileHydratingDEV() {
112
+export function didSuspendOrErrorWhileHydratingDEV(): boolean {
113
if (__DEV__) {
114
return didSuspendOrErrorDEV;
115
}
@@ -685,7 +685,7 @@ function popHydrationState(fiber: Fiber): boolean {
685
return true;
686
}
687
688
-function hasUnhydratedTailNodes() {
688
+function hasUnhydratedTailNodes(): boolean {
689
return isHydrating && nextHydratableInstance !== null;
690
}
691
packages/react-reconciler/src/ReactFiberLane.new.js
+12
-12
@@ -435,7 +435,7 @@ export function markStarvedLanesAsExpired(
435
436
// This returns the highest priority pending lanes regardless of whether they
437
// are suspended.
438
-export function getHighestPriorityPendingLanes(root: FiberRoot) {
438
+export function getHighestPriorityPendingLanes(root: FiberRoot): Lanes {
439
return getHighestPriorityLanes(root.pendingLanes);
440
}
441
@@ -458,25 +458,25 @@ export function getLanesToRetrySynchronouslyOnError(
458
return NoLanes;
459
}
460
461
-export function includesSyncLane(lanes: Lanes) {
461
+export function includesSyncLane(lanes: Lanes): boolean {
462
return (lanes & SyncLane) !== NoLanes;
463
}
464
465
-export function includesNonIdleWork(lanes: Lanes) {
465
+export function includesNonIdleWork(lanes: Lanes): boolean {
466
return (lanes & NonIdleLanes) !== NoLanes;
467
}
468
-export function includesOnlyRetries(lanes: Lanes) {
468
+export function includesOnlyRetries(lanes: Lanes): boolean {
469
return (lanes & RetryLanes) === lanes;
470
}
471
-export function includesOnlyNonUrgentLanes(lanes: Lanes) {
471
+export function includesOnlyNonUrgentLanes(lanes: Lanes): boolean {
472
const UrgentLanes = SyncLane | InputContinuousLane | DefaultLane;
473
return (lanes & UrgentLanes) === NoLanes;
474
}
475
-export function includesOnlyTransitions(lanes: Lanes) {
475
+export function includesOnlyTransitions(lanes: Lanes): boolean {
476
return (lanes & TransitionLanes) === lanes;
477
}
478
479
-export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
479
+export function includesBlockingLane(root: FiberRoot, lanes: Lanes): boolean {
480
if (
481
allowConcurrentByDefault &&
482
(root.current.mode & ConcurrentUpdatesByDefaultMode) !== NoMode
@@ -492,13 +492,13 @@ export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
492
return (lanes & SyncDefaultLanes) !== NoLanes;
493
}
494
495
-export function includesExpiredLane(root: FiberRoot, lanes: Lanes) {
495
+export function includesExpiredLane(root: FiberRoot, lanes: Lanes): boolean {
496
// This is a separate check from includesBlockingLane because a lane can
497
// expire after a render has already started.
498
return (lanes & root.expiredLanes) !== NoLanes;
499
}
500
501
-export function isTransitionLane(lane: Lane) {
501
+export function isTransitionLane(lane: Lane): boolean {
502
return (lane & TransitionLanes) !== NoLanes;
503
}
504
@@ -543,11 +543,11 @@ function laneToIndex(lane: Lane) {
543
return pickArbitraryLaneIndex(lane);
544
}
545
546
-export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane) {
546
+export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane): boolean {
547
return (a & b) !== NoLanes;
548
}
549
550
-export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane) {
550
+export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane): boolean {
551
return (set & subset) === subset;
552
}
553
@@ -569,7 +569,7 @@ export function laneToLanes(lane: Lane): Lanes {
569
return lane;
570
}
571
572
-export function higherPriorityLane(a: Lane, b: Lane) {
572
+export function higherPriorityLane(a: Lane, b: Lane): Lane {
573
// This works because the bit ranges decrease in priority as you go left.
574
return a !== NoLane && a < b ? a : b;
575
}
packages/react-reconciler/src/ReactFiberLane.old.js
+12
-12
@@ -435,7 +435,7 @@ export function markStarvedLanesAsExpired(
435
436
// This returns the highest priority pending lanes regardless of whether they
437
// are suspended.
438
-export function getHighestPriorityPendingLanes(root: FiberRoot) {
438
+export function getHighestPriorityPendingLanes(root: FiberRoot): Lanes {
439
return getHighestPriorityLanes(root.pendingLanes);
440
}
441
@@ -458,25 +458,25 @@ export function getLanesToRetrySynchronouslyOnError(
458
return NoLanes;
459
}
460
461
-export function includesSyncLane(lanes: Lanes) {
461
+export function includesSyncLane(lanes: Lanes): boolean {
462
return (lanes & SyncLane) !== NoLanes;
463
}
464
465
-export function includesNonIdleWork(lanes: Lanes) {
465
+export function includesNonIdleWork(lanes: Lanes): boolean {
466
return (lanes & NonIdleLanes) !== NoLanes;
467
}
468
-export function includesOnlyRetries(lanes: Lanes) {
468
+export function includesOnlyRetries(lanes: Lanes): boolean {
469
return (lanes & RetryLanes) === lanes;
470
}
471
-export function includesOnlyNonUrgentLanes(lanes: Lanes) {
471
+export function includesOnlyNonUrgentLanes(lanes: Lanes): boolean {
472
const UrgentLanes = SyncLane | InputContinuousLane | DefaultLane;
473
return (lanes & UrgentLanes) === NoLanes;
474
}
475
-export function includesOnlyTransitions(lanes: Lanes) {
475
+export function includesOnlyTransitions(lanes: Lanes): boolean {
476
return (lanes & TransitionLanes) === lanes;
477
}
478
479
-export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
479
+export function includesBlockingLane(root: FiberRoot, lanes: Lanes): boolean {
480
if (
481
allowConcurrentByDefault &&
482
(root.current.mode & ConcurrentUpdatesByDefaultMode) !== NoMode
@@ -492,13 +492,13 @@ export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
492
return (lanes & SyncDefaultLanes) !== NoLanes;
493
}
494
495
-export function includesExpiredLane(root: FiberRoot, lanes: Lanes) {
495
+export function includesExpiredLane(root: FiberRoot, lanes: Lanes): boolean {
496
// This is a separate check from includesBlockingLane because a lane can
497
// expire after a render has already started.
498
return (lanes & root.expiredLanes) !== NoLanes;
499
}
500
501
-export function isTransitionLane(lane: Lane) {
501
+export function isTransitionLane(lane: Lane): boolean {
502
return (lane & TransitionLanes) !== NoLanes;
503
}
504
@@ -543,11 +543,11 @@ function laneToIndex(lane: Lane) {
543
return pickArbitraryLaneIndex(lane);
544
}
545
546
-export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane) {
546
+export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane): boolean {
547
return (a & b) !== NoLanes;
548
}
549
550
-export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane) {
550
+export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane): boolean {
551
return (set & subset) === subset;
552
}
553
@@ -569,7 +569,7 @@ export function laneToLanes(lane: Lane): Lanes {
569
return lane;
570
}
571
572
-export function higherPriorityLane(a: Lane, b: Lane) {
572
+export function higherPriorityLane(a: Lane, b: Lane): Lane {
573
// This works because the bit ranges decrease in priority as you go left.
574
return a !== NoLane && a < b ? a : b;
575
}
packages/react-reconciler/src/ReactFiberNewContext.new.js
+3
-1
@@ -598,7 +598,9 @@ function propagateParentContextChanges(
598
workInProgress.flags |= DidPropagateContext;
599
}
600
601
-export function checkIfContextChanged(currentDependencies: Dependencies) {
601
+export function checkIfContextChanged(
602
+ currentDependencies: Dependencies,
603
+): boolean {
604
if (!enableLazyContextPropagation) {
605
return false;
606
}
packages/react-reconciler/src/ReactFiberNewContext.old.js
+3
-1
@@ -598,7 +598,9 @@ function propagateParentContextChanges(
598
workInProgress.flags |= DidPropagateContext;
599
}
600
601
-export function checkIfContextChanged(currentDependencies: Dependencies) {
601
+export function checkIfContextChanged(
602
+ currentDependencies: Dependencies,
603
+): boolean {
604
if (!enableLazyContextPropagation) {
605
return false;
606
}
packages/react-reconciler/src/ReactFiberShellHydration.js
+1
-1
@@ -13,7 +13,7 @@ import type {RootState} from './ReactFiberRoot.new';
13
// This is imported by the event replaying implementation in React DOM. It's
14
// in a separate file to break a circular dependency between the renderer and
15
// the reconciler.
16
-export function isRootDehydrated(root: FiberRoot) {
16
+export function isRootDehydrated(root: FiberRoot): boolean {
17
const currentState: RootState = root.current.memoizedState;
18
return currentState.isDehydrated;
19
}
packages/react-reconciler/src/ReactFiberSyncTaskQueue.new.js
+1
-1
@@ -48,7 +48,7 @@ export function flushSyncCallbacksOnlyInLegacyMode() {
48
}
49
}
50
51
-export function flushSyncCallbacks() {
51
+export function flushSyncCallbacks(): null {
52
if (!isFlushingSyncQueue && syncQueue !== null) {
53
// Prevent re-entrance.
54
isFlushingSyncQueue = true;
packages/react-reconciler/src/ReactFiberSyncTaskQueue.old.js
+1
-1
@@ -48,7 +48,7 @@ export function flushSyncCallbacksOnlyInLegacyMode() {
48
}
49
}
50
51
-export function flushSyncCallbacks() {
51
+export function flushSyncCallbacks(): null {
52
if (!isFlushingSyncQueue && syncQueue !== null) {
53
// Prevent re-entrance.
54
isFlushingSyncQueue = true;
packages/react-reconciler/src/ReactFiberWakeable.new.js
+2
-2
@@ -24,11 +24,11 @@ let lastUsedThenable: Thenable<any> | null = null;
24
25
const MAX_AD_HOC_SUSPEND_COUNT = 50;
26
27
-export function isTrackingSuspendedThenable() {
27
+export function isTrackingSuspendedThenable(): boolean {
28
return suspendedThenable !== null;
29
}
30
31
-export function suspendedThenableDidResolve() {
31
+export function suspendedThenableDidResolve(): boolean {
32
if (suspendedThenable !== null) {
33
const status = suspendedThenable.status;
34
return status === 'fulfilled' || status === 'rejected';
packages/react-reconciler/src/ReactFiberWakeable.old.js
+2
-2
@@ -24,11 +24,11 @@ let lastUsedThenable: Thenable<any> | null = null;
24
25
const MAX_AD_HOC_SUSPEND_COUNT = 50;
26
27
-export function isTrackingSuspendedThenable() {
27
+export function isTrackingSuspendedThenable(): boolean {
28
return suspendedThenable !== null;
29
}
30
31
-export function suspendedThenableDidResolve() {
31
+export function suspendedThenableDidResolve(): boolean {
32
if (suspendedThenable !== null) {
33
const status = suspendedThenable.status;
34
return status === 'fulfilled' || status === 'rejected';
packages/react-reconciler/src/ReactFiberWorkLoop.new.js
+4
-4
@@ -357,7 +357,7 @@ let workInProgressRootRenderTargetTime: number = Infinity;
357
const RENDER_TIMEOUT_MS = 500;
358
359
let workInProgressTransitions: Array<Transition> | null = null;
360
-export function getWorkInProgressTransitions() {
360
+export function getWorkInProgressTransitions(): null | Array<Transition> {
361
return workInProgressTransitions;
362
}
363
@@ -814,7 +814,7 @@ export function scheduleInitialHydrationOnRoot(
814
ensureRootIsScheduled(root, eventTime);
815
}
816
817
-export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber) {
817
+export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber): boolean {
818
// Check if this is a render phase update. Only called by class components,
819
// which special (deprecated) behavior for UNSAFE_componentWillReceive props.
820
return (
@@ -1557,7 +1557,7 @@ declare function flushSync<R>(fn: () => R): R;
1557
// eslint-disable-next-line no-redeclare
1558
declare function flushSync(): void;
1559
// eslint-disable-next-line no-redeclare
1560
-export function flushSync(fn) {
1560
+export function flushSync(fn): void {
1561
// In legacy mode, we flush pending passive effects at the beginning of the
1562
// next event, not at the end of the previous one.
1563
if (
@@ -1596,7 +1596,7 @@ export function flushSync(fn) {
1596
}
1597
}
1598
1599
-export function isAlreadyRendering() {
1599
+export function isAlreadyRendering(): boolean {
1600
// Used by the renderer to print a warning if certain APIs are called from
1601
// the wrong context.
1602
return (
packages/react-reconciler/src/ReactFiberWorkLoop.old.js
+4
-4
@@ -357,7 +357,7 @@ let workInProgressRootRenderTargetTime: number = Infinity;
357
const RENDER_TIMEOUT_MS = 500;
358
359
let workInProgressTransitions: Array<Transition> | null = null;
360
-export function getWorkInProgressTransitions() {
360
+export function getWorkInProgressTransitions(): null | Array<Transition> {
361
return workInProgressTransitions;
362
}
363
@@ -814,7 +814,7 @@ export function scheduleInitialHydrationOnRoot(
814
ensureRootIsScheduled(root, eventTime);
815
}
816
817
-export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber) {
817
+export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber): boolean {
818
// Check if this is a render phase update. Only called by class components,
819
// which special (deprecated) behavior for UNSAFE_componentWillReceive props.
820
return (
@@ -1557,7 +1557,7 @@ declare function flushSync<R>(fn: () => R): R;
1557
// eslint-disable-next-line no-redeclare
1558
declare function flushSync(): void;
1559
// eslint-disable-next-line no-redeclare
1560
-export function flushSync(fn) {
1560
+export function flushSync(fn): void {
1561
// In legacy mode, we flush pending passive effects at the beginning of the
1562
// next event, not at the end of the previous one.
1563
if (
@@ -1596,7 +1596,7 @@ export function flushSync(fn) {
1596
}
1597
}
1598
1599
-export function isAlreadyRendering() {
1599
+export function isAlreadyRendering(): boolean {
1600
// Used by the renderer to print a warning if certain APIs are called from
1601
// the wrong context.
1602
return (
packages/react-reconciler/src/clz32.js
+3
-1
@@ -9,7 +9,9 @@
9
10
// TODO: This is pretty well supported by browsers. Maybe we can drop it.
11
12
-export const clz32 = Math.clz32 ? Math.clz32 : clz32Fallback;
12
+export const clz32: (x: number) => number = Math.clz32
13
+ ? Math.clz32
14
+ : clz32Fallback;
15
16
// Count leading zeros.
17
// Based on:
packages/react-refresh/src/ReactFreshRuntime.js
+2
-2
@@ -599,13 +599,13 @@ export function injectIntoGlobalHook(globalObject: any): void {
599
}
600
}
601
602
-export function hasUnrecoverableErrors() {
602
+export function hasUnrecoverableErrors(): boolean {
603
// TODO: delete this after removing dependency in RN.
604
return false;
605
}
606
607
// Exposed for testing.
608
-export function _getMountedRootCount() {
608
+export function _getMountedRootCount(): number {
609
if (__DEV__) {
610
return mountedRoots.size;
611
} else {
packages/react-server-dom-webpack/src/ReactFlightWebpackNodeLoader.js
+1
-1
@@ -94,7 +94,7 @@ export async function getSource(
94
url: string,
95
context: GetSourceContext,
96
defaultGetSource: GetSourceFunction,
97
-) {
97
+): Promise<{source: Source}> {
98
// We stash this in case we end up needing to resolve export * statements later.
99
stashedGetSource = defaultGetSource;
100
return defaultGetSource(url, context, defaultGetSource);
packages/react-server-dom-webpack/src/ReactFlightWebpackPlugin.js
+1
-1
@@ -29,7 +29,7 @@ class ClientReferenceDependency extends ModuleDependency {
29
super(request);
30
}
31
32
- get type() {
32
+ get type(): string {
33
return 'client-reference';
34
}
35
}
packages/react-server/src/ReactFizzContext.js
+2
-1
@@ -17,7 +17,8 @@ if (__DEV__) {
17
warnedAboutMissingGetChildContext = {};
18
}
19
20
-export const emptyContextObject = {};
20
+// $FlowFixMe[incompatible-exact]
21
+export const emptyContextObject: {} = {};
22
if (__DEV__) {
23
Object.freeze(emptyContextObject);
24
}
packages/react-server/src/ReactFizzHooks.js
+2
-2
@@ -239,13 +239,13 @@ export function finishHooks(
239
return children;
240
}
241
242
-export function getThenableStateAfterSuspending() {
242
+export function getThenableStateAfterSuspending(): null | ThenableState {
243
const state = thenableState;
244
thenableState = null;
245
return state;
246
}
247
248
-export function checkDidRenderIdHook() {
248
+export function checkDidRenderIdHook(): boolean {
249
// This should be called immediately after every finishHooks call.
250
// Conceptually, it's part of the return value of finishHooks; it's only a
251
// separate function to avoid using an array tuple.
packages/react-server/src/ReactFlightHooks.js
+1
-1
@@ -39,7 +39,7 @@ export function prepareToUseHooksForComponent(
39
thenableState = prevThenableState;
40
}
41
42
-export function getThenableStateAfterSuspending() {
42
+export function getThenableStateAfterSuspending(): null | ThenableState {
43
const state = thenableState;
44
thenableState = null;
45
return state;
packages/react/src/BadMapPolyfill.js
+1
-1
@@ -6,7 +6,7 @@
6
* @flow
7
*/
8
9
-export let hasBadMapPolyfill;
9
+export let hasBadMapPolyfill: boolean;
10
11
if (__DEV__) {
12
hasBadMapPolyfill = false;
packages/scheduler/src/forks/SchedulerPostTask.js
+1
-1
@@ -59,7 +59,7 @@ let currentPriorityLevel_DEPRECATED = NormalPriority;
59
60
// `isInputPending` is not available. Since we have no way of knowing if
61
// there's pending input, always yield at the end of the frame.
62
-export function unstable_shouldYield() {
62
+export function unstable_shouldYield(): boolean {
63
return getCurrentTime() >= deadline;
64
}
65
packages/shared/CheckStringCoercion.js
+12
-6
@@ -73,7 +73,7 @@ function testStringCoercion(value: mixed) {
73
export function checkAttributeStringCoercion(
74
value: mixed,
75
attributeName: string,
76
-) {
76
+): void | string {
77
if (__DEV__) {
78
if (willCoercionThrow(value)) {
79
console.error(
@@ -87,7 +87,7 @@ export function checkAttributeStringCoercion(
87
}
88
}
89
90
-export function checkKeyStringCoercion(value: mixed) {
90
+export function checkKeyStringCoercion(value: mixed): void | string {
91
if (__DEV__) {
92
if (willCoercionThrow(value)) {
93
console.error(
@@ -100,7 +100,10 @@ export function checkKeyStringCoercion(value: mixed) {
100
}
101
}
102
103
-export function checkPropStringCoercion(value: mixed, propName: string) {
103
+export function checkPropStringCoercion(
104
+ value: mixed,
105
+ propName: string,
106
+): void | string {
107
if (__DEV__) {
108
if (willCoercionThrow(value)) {
109
console.error(
@@ -114,7 +117,10 @@ export function checkPropStringCoercion(value: mixed, propName: string) {
117
}
118
}
119
117
-export function checkCSSPropertyStringCoercion(value: mixed, propName: string) {
120
+export function checkCSSPropertyStringCoercion(
121
+ value: mixed,
122
+ propName: string,
123
+): void | string {
124
if (__DEV__) {
125
if (willCoercionThrow(value)) {
126
console.error(
@@ -128,7 +134,7 @@ export function checkCSSPropertyStringCoercion(value: mixed, propName: string) {
134
}
135
}
136
131
-export function checkHtmlStringCoercion(value: mixed) {
137
+export function checkHtmlStringCoercion(value: mixed): void | string {
138
if (__DEV__) {
139
if (willCoercionThrow(value)) {
140
console.error(
@@ -141,7 +147,7 @@ export function checkHtmlStringCoercion(value: mixed) {
147
}
148
}
149
144
-export function checkFormFieldValueStringCoercion(value: mixed) {
150
+export function checkFormFieldValueStringCoercion(value: mixed): void | string {
151
if (__DEV__) {
152
if (willCoercionThrow(value)) {
153
console.error(
packages/shared/ReactErrorUtils.js
+1
-1
@@ -105,7 +105,7 @@ export function rethrowCaughtError() {
105
}
106
}
107
108
-export function hasCaughtError() {
108
+export function hasCaughtError(): boolean {
109
return hasError;
110
}
111
packages/shared/ReactSymbols.js
+28
-20
@@ -12,28 +12,36 @@
12
// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
13
14
// The Symbol used to tag the ReactElement-like types.
15
-export const REACT_ELEMENT_TYPE = Symbol.for('react.element');
16
-export const REACT_PORTAL_TYPE = Symbol.for('react.portal');
17
-export const REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
18
-export const REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
19
-export const REACT_PROFILER_TYPE = Symbol.for('react.profiler');
20
-export const REACT_PROVIDER_TYPE = Symbol.for('react.provider');
21
-export const REACT_CONTEXT_TYPE = Symbol.for('react.context');
22
-export const REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
23
-export const REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
24
-export const REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
25
-export const REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
26
-export const REACT_MEMO_TYPE = Symbol.for('react.memo');
27
-export const REACT_LAZY_TYPE = Symbol.for('react.lazy');
28
-export const REACT_SCOPE_TYPE = Symbol.for('react.scope');
29
-export const REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for(
15
+export const REACT_ELEMENT_TYPE: symbol = Symbol.for('react.element');
16
+export const REACT_PORTAL_TYPE: symbol = Symbol.for('react.portal');
17
+export const REACT_FRAGMENT_TYPE: symbol = Symbol.for('react.fragment');
18
+export const REACT_STRICT_MODE_TYPE: symbol = Symbol.for('react.strict_mode');
19
+export const REACT_PROFILER_TYPE: symbol = Symbol.for('react.profiler');
20
+export const REACT_PROVIDER_TYPE: symbol = Symbol.for('react.provider');
21
+export const REACT_CONTEXT_TYPE: symbol = Symbol.for('react.context');
22
+export const REACT_SERVER_CONTEXT_TYPE: symbol = Symbol.for(
23
+ 'react.server_context',
24
+);
25
+export const REACT_FORWARD_REF_TYPE: symbol = Symbol.for('react.forward_ref');
26
+export const REACT_SUSPENSE_TYPE: symbol = Symbol.for('react.suspense');
27
+export const REACT_SUSPENSE_LIST_TYPE: symbol = Symbol.for(
28
+ 'react.suspense_list',
29
+);
30
+export const REACT_MEMO_TYPE: symbol = Symbol.for('react.memo');
31
+export const REACT_LAZY_TYPE: symbol = Symbol.for('react.lazy');
32
+export const REACT_SCOPE_TYPE: symbol = Symbol.for('react.scope');
33
+export const REACT_DEBUG_TRACING_MODE_TYPE: symbol = Symbol.for(
34
'react.debug_trace_mode',
35
);
32
-export const REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
33
-export const REACT_LEGACY_HIDDEN_TYPE = Symbol.for('react.legacy_hidden');
34
-export const REACT_CACHE_TYPE = Symbol.for('react.cache');
35
-export const REACT_TRACING_MARKER_TYPE = Symbol.for('react.tracing_marker');
36
-export const REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED = Symbol.for(
36
+export const REACT_OFFSCREEN_TYPE: symbol = Symbol.for('react.offscreen');
37
+export const REACT_LEGACY_HIDDEN_TYPE: symbol = Symbol.for(
38
+ 'react.legacy_hidden',
39
+);
40
+export const REACT_CACHE_TYPE: symbol = Symbol.for('react.cache');
41
+export const REACT_TRACING_MARKER_TYPE: symbol = Symbol.for(
42
+ 'react.tracing_marker',
43
+);
44
+export const REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED: symbol = Symbol.for(
45
'react.default_value',
46
);
47
packages/shared/forks/ReactFeatureFlags.www-dynamic.js
+1
-1
@@ -19,7 +19,7 @@ export const enableFilterEmptyStringAttributesDOM = __VARIANT__;
19
export const enableLegacyFBSupport = __VARIANT__;
20
export const skipUnmountedBoundaries = __VARIANT__;
21
export const enableUseRefAccessWarning = __VARIANT__;
22
-export const deletedTreeCleanUpLevel = __VARIANT__ ? 3 : 1;
22
+export const deletedTreeCleanUpLevel: number = __VARIANT__ ? 3 : 1;
23
export const enableProfilerNestedUpdateScheduledHook = __VARIANT__;
24
export const disableSchedulerTimeoutInWorkLoop = __VARIANT__;
25
export const enableLazyContextPropagation = __VARIANT__;
packages/shared/forks/ReactFeatureFlags.www.js
+3
-3
@@ -39,13 +39,13 @@ export const {
39
// On WWW, __EXPERIMENTAL__ is used for a new modern build.
40
// It's not used anywhere in production yet.
41
42
-export const enableStrictEffects =
42
+export const enableStrictEffects: boolean =
43
__DEV__ && dynamicFeatureFlags.enableStrictEffects;
44
export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
45
export const enableProfilerTimer = __PROFILE__;
46
export const enableProfilerCommitHooks = __PROFILE__;
47
export const enableProfilerNestedUpdatePhase = __PROFILE__;
48
-export const enableProfilerNestedUpdateScheduledHook =
48
+export const enableProfilerNestedUpdateScheduledHook: boolean =
49
__PROFILE__ && dynamicFeatureFlags.enableProfilerNestedUpdateScheduledHook;
50
export const enableUpdaterTracking = __PROFILE__;
51
@@ -57,7 +57,7 @@ export const enableUseHook = true;
57
export const enableUseMemoCacheHook = true;
58
59
// Logs additional User Timing API marks for use with an experimental profiling tool.
60
-export const enableSchedulingProfiler =
60
+export const enableSchedulingProfiler: boolean =
61
__PROFILE__ && dynamicFeatureFlags.enableSchedulingProfiler;
62
63
// Note: we'll want to remove this when we to userland implementation.
packages/shared/isValidElementType.js
+1
-1
@@ -35,7 +35,7 @@ import {
35
36
const REACT_MODULE_REFERENCE: symbol = Symbol.for('react.module.reference');
37
38
-export default function isValidElementType(type: mixed) {
38
+export default function isValidElementType(type: mixed): boolean {
39
if (typeof type === 'string' || typeof type === 'function') {
40
return true;
41
}