`@types/react@^18` in `dependencies` breaks type-checking in React 19 projects
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 50/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- react, typescript
- Domaine
- build-system
Piste de recherche
The problem is the @types/react entry under dependencies in the braintrust package manifest, added with #2191 for the braintrust/custom-views typings in dist/custom-views.d.ts. Read the manifest and check whether custom views need React types at all. The suggested fix moves @types/react to an optional peer dependency, which is a maintainer decision, so confirm the approach before editing. Done means a React 19 project installs no React 18 types, and custom-views consumers still type-check.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
Since 3.33.0, braintrust lists @types/react: ^18.3.1 under dependencies. As far as I can tell it is only needed for the braintrust/custom-views type definitions (dist/custom-views.d.ts imports ReactNode from react), which came in with #2191.
Because it is a hard dependency, every consumer gets React 18 types installed, including projects that don't use custom views or don't use React at all. In a React 19 project, this can break tsc.
What happened
We use pnpm (workspace) and React 19 (@types/react@19). After upgrading braintrust from 3.32.0 to 3.35.0, pnpm hoisted @types/[email protected] into node_modules/.pnpm/node_modules. Packages that import types from react without declaring @types/react themselves (in our case @sentry/react) then resolved React 18 types, while our own code used React 19 types. tsc --noEmit failed with errors like this:
error TS2322: Type 'React.ReactNode' is not assignable to type 'import(".../@[email protected]/node_modules/@types/react/index").ReactNode'.
Type 'ReactElement<unknown, string | JSXElementConstructor<any>>' is not assignable to type 'ReactNode'.
Property 'children' is missing in type 'ReactElement<unknown, string | JSXElementConstructor<any>>' but required in type 'ReactPortal'.
We work around it with a pnpm override ("braintrust>@types/react": "^19"), or by staying on 3.32.0.
Versions
braintrust: 3.33.0 – 3.37.1 (not in 3.32.0)@types/reactin the project: 19.2.x- Package manager: pnpm 11 (workspace)
Suggestion
Declare @types/react (and react, if needed) as an optional peer dependency, for example:
"peerDependencies": {
"@types/react": ">=18"
},
"peerDependenciesMeta": {
"@types/react": { "optional": true }
}
That way, projects that use custom views get the @types/react they already have, whatever its version, and other projects don't get React types installed at all.
- Langage dominant
- TypeScript
- Étoiles
- 29
- Forks
- 22
- Merge moyen
- 1 j 6 h
- PR mergées (30 j)
- 69
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun 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 braintrustdata/braintrust-sdk-javascript
-
typescript
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
braintrustdata/braintrust-sdk-javascript#2708 ·
Les mainteneurs répondent en général sous 1 jour
-
typescript
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
braintrustdata/braintrust-sdk-javascript#2707 ·
Les mainteneurs répondent en général sous 1 jour
-
typescript
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
braintrustdata/braintrust-sdk-javascript#2686 ·
Les mainteneurs répondent en général sous 1 jour
-
typescript
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
braintrustdata/braintrust-sdk-javascript#2685 ·
Les mainteneurs répondent en général sous 1 jour
-
[bot] Cloudflare Workers AI `queueRequest` (batch) inference is explicitly excluded from tracingOuvertecloudflare typescript
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
braintrustdata/braintrust-sdk-javascript#2684 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de braintrustdata/braintrust-sdk-javascript
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
unocss/unocss#5421 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
needs-area
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Azure/typespec-azure#5936 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 Une demi-journée Accessibilité débutants 72/100
vercel-labs/scriptc#2910 ·
Les mainteneurs répondent en général sous 1 jour
-
automation missing-model model-sync provider:fireworks-ai
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
anomalyco/models.dev#12458 ·
Les mainteneurs répondent en général sous 1 jour