Summary
Raise the React Native SDK's minimum supported TypeScript version to 5.0.4 and drop the TypeScript 3.8 down-leveling setup.
Target: v9 (next major). This is a breaking change and will be implemented as part of the v9 major, alongside the @sentry/* JavaScript SDK v11 bump.
Background
JavaScript SDK v11 raises its minimum TypeScript to 5.0.4 and stops emitting down-leveled types (migration guide — TypeScript Version Policy). Confirmed against the alpha: @sentry/core@11.0.0-alpha.2 no longer ships the typesVersions / types-ts3.8 fallback that v10 provided for TS <5.0.
Because the RN SDK re-exports and references @sentry/core types, its effective TypeScript floor is inherited from core. The v11 core .d.ts files use TS 4.0/4.5+ syntax (labeled tuple elements; inline type import specifiers) that older TypeScript cannot parse — this is what fails the Type Check TypeScript 3.8 CI job on the alpha.2 spike (#6655). Our own downlevel-dts step only rewrites the RN SDK's own declarations; it does not (and cannot practically) rewrite the transitive @sentry/core types.
See the alpha.2 tracking notes in #6656.
Is 5.0.4 viable for React Native?
Yes. 5.0.4 is exactly the TypeScript version the RN community template pinned for RN 0.73–0.76; RN 0.77+ ships newer (^5.8.x). RN 0.71/0.72 templated TS 4.8.4, but TypeScript is decoupled from the RN version and can be bumped independently.
User impact
Compile-time only, TypeScript users only:
- Not affected: JavaScript-only users, and TypeScript users already on
>= 5.0.4 (the majority).
- Affected: TypeScript users below
5.0.4 — they must bump typescript (a devDependency change, independent of their RN version). No runtime/behavior impact.
The SDK's react-native peer floor stays >= 0.65.0: the SDK still runs on old RN, but its types will require TS 5.0.4.
Tasks
Summary
Raise the React Native SDK's minimum supported TypeScript version to
5.0.4and drop the TypeScript 3.8 down-leveling setup.Background
JavaScript SDK v11 raises its minimum TypeScript to
5.0.4and stops emitting down-leveled types (migration guide — TypeScript Version Policy). Confirmed against the alpha:@sentry/core@11.0.0-alpha.2no longer ships thetypesVersions/types-ts3.8fallback that v10 provided for TS<5.0.Because the RN SDK re-exports and references
@sentry/coretypes, its effective TypeScript floor is inherited from core. The v11 core.d.tsfiles use TS 4.0/4.5+ syntax (labeled tuple elements; inlinetypeimport specifiers) that older TypeScript cannot parse — this is what fails theType Check TypeScript 3.8CI job on the alpha.2 spike (#6655). Our owndownlevel-dtsstep only rewrites the RN SDK's own declarations; it does not (and cannot practically) rewrite the transitive@sentry/coretypes.See the alpha.2 tracking notes in #6656.
Is
5.0.4viable for React Native?Yes.
5.0.4is exactly the TypeScript version the RN community template pinned for RN 0.73–0.76; RN 0.77+ ships newer (^5.8.x). RN 0.71/0.72 templated TS 4.8.4, but TypeScript is decoupled from the RN version and can be bumped independently.User impact
Compile-time only, TypeScript users only:
>= 5.0.4(the majority).5.0.4— they must bumptypescript(a devDependency change, independent of their RN version). No runtime/behavior impact.The SDK's
react-nativepeer floor stays>= 0.65.0: the SDK still runs on old RN, but its types will require TS 5.0.4.Tasks
5.0.4.downlevelbuild step, thedownlevel-dtsdevDependency, and thetypesVersions<4.9 → ts3.8mapping inpackages/core/package.json.Type Check TypeScript 3.8CI job with one pinned to the new5.0.4floor.@sentry/corev11); React Native support unchanged (>= 0.65). TypeScript users below 5.0.4 must upgrade TypeScript — this does not require a React Native upgrade."