diff --git a/packages/react-native/Libraries/Image/ImageTypes.flow.js b/packages/react-native/Libraries/Image/ImageTypes.flow.js index 13f1106f66d..6f468605f5c 100644 --- a/packages/react-native/Libraries/Image/ImageTypes.flow.js +++ b/packages/react-native/Libraries/Image/ImageTypes.flow.js @@ -25,6 +25,11 @@ export type ImageSize = { export type ImageResolvedAssetSource = ResolvedAssetSource; +// Declared outside the object type below so that the generated TypeScript keeps +// `null`: `?T` on an object member is translated to `T | undefined`, while +// `resolveAssetSource` returns `null` for an asset that isn't registered. +type ResolveAssetSourceResult = ?ImageResolvedAssetSource; + type ImageComponentStaticsIOS = Readonly<{ getSize(uri: string): Promise, getSize( @@ -59,7 +64,7 @@ type ImageComponentStaticsIOS = Readonly<{ /** * @see https://reactnative.dev/docs/image#resolveassetsource */ - resolveAssetSource(source: ImageSource): ?ImageResolvedAssetSource, + resolveAssetSource(source: ImageSource): ResolveAssetSourceResult, }>; type ImageComponentStaticsAndroid = Readonly<{ diff --git a/packages/react-native/ReactNativeApi.d.ts b/packages/react-native/ReactNativeApi.d.ts index 9318d24c675..12dbd955fd8 100644 --- a/packages/react-native/ReactNativeApi.d.ts +++ b/packages/react-native/ReactNativeApi.d.ts @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<57a22e3b7e5bbdb70ec787177e97ef4b>> + * @generated SignedSource<<4c64524b8e260763eaf00c4bee376bc9>> * * This file was generated by scripts/js-api/build-types/index.js. */ @@ -2466,7 +2466,7 @@ declare type ImageComponentStaticsIOS = { queryCache(urls: Array): Promise<{ [url: string]: "disk" | "disk/memory" | "memory" }> - resolveAssetSource(source: ImageSource): ImageResolvedAssetSource | undefined + resolveAssetSource(source: ImageSource): ResolveAssetSourceResult } declare type ImageErrorEvent = NativeSyntheticEvent< Readonly @@ -4116,6 +4116,8 @@ declare type RequiredVirtualizedSectionListProps< sections: ReadonlyArray> } declare type requireNativeComponent = typeof requireNativeComponent +declare type ResolveAssetSourceResult = + ImageResolvedAssetSource | null | undefined declare type ResolvedAssetSource = { readonly height: number | undefined readonly scale: number @@ -5791,9 +5793,9 @@ export { AlertOptions, // 8a116d2a AlertType, // 5ab91217 AndroidKeyboardEvent, // e03becc8 - Animated, // 82e01a3c + Animated, // 14e205a3 AnimatedFlatList, // a4467eeb - AnimatedImage, // f02097b9 + AnimatedImage, // e2ff77a3 AnimatedScrollView, // faf0e26c AnimatedSectionList, // 41cf38c7 AnimatedText, // ddb4c5b7 @@ -5862,10 +5864,10 @@ export { IEventEmitter, // fbef6131 IOSKeyboardEvent, // e67bfe3a IgnorePattern, // ec6f6ece - Image, // a24a5777 - ImageBackground, // 1fbbacef - ImageBackgroundInstance, // 9c900a60 - ImageBackgroundProps, // b078f0ac + Image, // de357ba4 + ImageBackground, // fd50fdb6 + ImageBackgroundInstance, // 61ab8daf + ImageBackgroundProps, // 49c3326d ImageErrorEvent, // b6227714 ImageInstance, // df709524 ImageLoadEvent, // 31709c38