[Strict TS API] NativeSyntheticEvent doesn't match BaseSyntheticEvent
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 64/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- react-native, typescript
Piste de recherche
Commencez par le type TextInput onSubmitEditing et la définition de NativeSyntheticEvent utilisée par React Native 0.87. Reproduisez l'affectation TypeScript stricte de l'issue, puis comparez-la avec le typage de BaseSyntheticEvent de React. Le travail est terminé lorsque le handler signalé est compatible sans affaiblir les types d'événements concernés, avec une vérification de régression pour l'exemple présenté.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
My team uses unified codebase that share web and native code, so that is why a BaseSyntheticEvent event was used here.
import type {BaseSyntheticEvent} from 'react';
<TextInput onSubmitEditing={
(event: BaseSyntheticEvent) => {
event.bubbles; // boolean | undefined
// error: BaseSyntheticEvent require `boolean` only type
}}
/>
this issue doesn't not exist in prev. RN versions
Steps to reproduce
see above
React Native Version
0.87.0
Affected Platforms
Runtime - Android, Runtime - iOS
Output of npx @react-native-community/cli info
System:
OS: macOS 26.5
CPU: (11) arm64 Apple M3 Pro
Memory: 1.27 GB / 36.00 GB
Shell:
version: 4.0.1
path: /opt/homebrew/bin/fish
Binaries:
Node:
version: 24.13.1
path: /usr/local/bin/node
Yarn:
version: 3.6.4
path: /opt/homebrew/bin/yarn
npm:
version: 11.8.0
path: /usr/local/bin/npm
Watchman:
version: 2025.09.01.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /Users/xdxd/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 25.2
- iOS 26.2
- macOS 26.2
- tvOS 26.2
- visionOS 26.2
- watchOS 26.2
Android SDK:
API Levels:
- "34"
- "35"
- "36"
Build Tools:
- 33.0.1
- 34.0.0
- 35.0.0
- 36.0.0
- 37.0.0
System Images:
- android-34 | Android TV ARM 64 v8a
- android-34 | Google TV ARM 64 v8a
- android-35 | Google APIs ARM 64 v8a
- android-35 | Google Play ARM 64 v8a
- android-36 | Android TV ARM 64 v8a
- android-36 | Google TV ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2026.1 AI-261.23567.138.2611.15646644
Xcode:
version: 26.2/17C52
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.13
path: /usr/bin/javac
Ruby:
version: 2.6.10
path: /Users/xdxd/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.2.0
wanted: 20.2.0
react:
installed: 19.2.3
wanted: 19.2.3
react-native:
installed: 0.87.0
wanted: 0.87.0
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: false
Stacktrace or Logs
error TS2322: Type '(event: BaseSyntheticEvent) => void' is not assignable to type '(e: Readonly<{ bubbles: boolean | undefined; cancelable: boolean; currentTarget: number | ReactNativeElement; defaultPrevented: boolean; dispatchConfig: Readonly<{ registrationName: string; }>; ... 10 more ...; type: string; }>) => unknown'.
Types of parameters 'event' and 'e' are incompatible.
Type 'Readonly<{ bubbles: boolean | undefined; cancelable: boolean; currentTarget: number | ReactNativeElement; defaultPrevented: boolean; dispatchConfig: Readonly<{ registrationName: string; }>; ... 10 more ...; type: string; }>' is not assignable to type 'BaseSyntheticEvent<object, any, any>'.
Types of property 'bubbles' are incompatible.
Type 'boolean | undefined' is not assignable to type 'boolean'.
Type 'undefined' is not assignable to type 'boolean'.
27 <TextInput onSubmitEditing={(event: BaseSyntheticEvent) => {
MANDATORY Reproducer
Screenshots and Videos
...
- Langage dominant
- C++
- Étoiles
- 127k
- Forks
- 25.3k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de react/react-native
-
Needs: Author Feedback Needs: Repro
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
react/react-native#58621 · 1 commentaire ·
-
Needs: Author Feedback Needs: Repro
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
react/react-native#58610 · 1 commentaire ·
-
Needs: Triage :mag:
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
react/react-native#58565 · 1 commentaire · 2 réactions ·
-
Needs: Author Feedback Needs: Repro
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
react/react-native#58555 · 5 commentaires · 2 réactions ·
-
Needs: Attention Needs: Repro
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
react/react-native#58526 · 2 commentaires ·
Toutes les issues de react/react-native
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
ros2/message_filters#338 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
subsurface/subsurface#4984 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
google-ai-edge/LiteRT-LM#3739 ·