/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/Libraries/Utilities/Platform.android.js
84 строки
2 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 * @format */ import type {PlatformSelectSpec, PlatformType} from './PlatformTypes'; import NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid'; const Platform: PlatformType = { __constants: null, OS: 'android', // $FlowFixMe[unsafe-getters-setters] get Version(): number { // $FlowFixMe[object-this-reference] return this.constants.Version; }, // $FlowFixMe[unsafe-getters-setters] get constants(): { isTesting: boolean, isDisableAnimations?: boolean, reactNativeVersion: { major: number, minor: number, patch: number, prerelease: ?string, }, Version: number, Release: string, Serial: string, Fingerprint: string, Model: string, ServerHost?: string, uiMode: string, Brand: string, Manufacturer: string, } { // $FlowFixMe[object-this-reference] if (this.__constants == null) { // $FlowFixMe[object-this-reference] this.__constants = NativePlatformConstantsAndroid.getConstants(); } // $FlowFixMe[object-this-reference] return this.__constants; }, // $FlowFixMe[unsafe-getters-setters] get isTesting(): boolean { if (__DEV__) { // $FlowFixMe[object-this-reference] return this.constants.isTesting; } return false; }, // $FlowFixMe[unsafe-getters-setters] get isDisableAnimations(): boolean { // $FlowFixMe[object-this-reference] return this.constants.isDisableAnimations ?? this.isTesting; }, // $FlowFixMe[unsafe-getters-setters] get isTV(): boolean { // $FlowFixMe[object-this-reference] return this.constants.uiMode === 'tv'; }, // $FlowFixMe[unsafe-getters-setters] get isVision(): boolean { return false; }, select: <T>(spec: PlatformSelectSpec<T>): T => 'android' in spec ? // $FlowFixMe[incompatible-type] spec.android : 'native' in spec ? // $FlowFixMe[incompatible-type] spec.native : // $FlowFixMe[incompatible-type] spec.default, }; export default Platform;