mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Improve the type of Platform.select for Android
Summary: There's no need for the 3 type arguments here. Flow will infer a union already if multiple properties are provided. Worse, by not providing these properties these tvars end up with no bounds, which can cause downstream constraints to stall. All of the suppresisons added here are for legitimate errors that were uncovered by consolidating to one type argument. Changelog: [internal] Reviewed By: SamChou19815 Differential Revision: D40355811 fbshipit-source-id: 088fd087017a6082c793ef00c8810a81b39fb9fb
This commit is contained in:
committed by
Facebook GitHub Bot
parent
20c9654ca7
commit
b7f07473df
@@ -10,10 +10,10 @@
|
||||
|
||||
import NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid';
|
||||
|
||||
export type PlatformSelectSpec<A, N, D> = {
|
||||
android?: A,
|
||||
native?: N,
|
||||
default?: D,
|
||||
export type PlatformSelectSpec<T> = {
|
||||
android?: T,
|
||||
native?: T,
|
||||
default?: T,
|
||||
...
|
||||
};
|
||||
|
||||
@@ -65,7 +65,7 @@ const Platform = {
|
||||
// $FlowFixMe[object-this-reference]
|
||||
return this.constants.uiMode === 'tv';
|
||||
},
|
||||
select: <A, N, D>(spec: PlatformSelectSpec<A, N, D>): A | N | D =>
|
||||
select: <T>(spec: PlatformSelectSpec<T>): T =>
|
||||
'android' in spec
|
||||
? // $FlowFixMe[incompatible-return]
|
||||
spec.android
|
||||
|
||||
Reference in New Issue
Block a user