/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/Libraries/NativeComponent/ViewConfig.js
52 строки
1 KB
Sam Zhou
Standardize subtyping error code into `incompatible-type` in react native and metro (#53312)
18 авг 2025, 19:04
18 авг 2025, 19:04
cf664c6
Код
Авторство
О чём код?
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow strict-local * @format */ import type { PartialViewConfig, ViewConfig, } from '../Renderer/shims/ReactNativeTypes'; import PlatformBaseViewConfig from './PlatformBaseViewConfig'; /** * Creates a complete `ViewConfig` from a `PartialViewConfig`. */ export function createViewConfig( partialViewConfig: PartialViewConfig, ): ViewConfig { return { uiViewClassName: partialViewConfig.uiViewClassName, Commands: {}, bubblingEventTypes: composeIndexers( PlatformBaseViewConfig.bubblingEventTypes, partialViewConfig.bubblingEventTypes, ), directEventTypes: composeIndexers( PlatformBaseViewConfig.directEventTypes, partialViewConfig.directEventTypes, ), // $FlowFixMe[incompatible-type] validAttributes: composeIndexers( // $FlowFixMe[incompatible-call] `style` property confuses Flow. PlatformBaseViewConfig.validAttributes, // $FlowFixMe[incompatible-call] `style` property confuses Flow. partialViewConfig.validAttributes, ), }; } function composeIndexers<T>( maybeA: ?{+[string]: T}, maybeB: ?{+[string]: T}, ): {+[string]: T} { return maybeA == null || maybeB == null ? (maybeA ?? maybeB ?? {}) : {...maybeA, ...maybeB}; }