Declare @types/react as an optional peer dependency
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- react, typescript
- Ambito
- backend-api-design, tooling
Direzione di ricerca
Inizia controllando peerDependencies e peerDependenciesMeta nei manifesti dei pacchetti react-aria-components, react-aria, react-stately e @react-types/shared, quindi confronta gli intervalli peer React esistenti. Aggiungi i metadati peer opzionali per @types/react ai pacchetti interessati e verifica che i manifesti e i metadati dei pacchetti generati li includano. Il lavoro è completato quando i pacchetti dichiarano il peer opzionale e la riproduzione fornita della risoluzione TypeScript risolve correttamente i tipi React.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
react-aria-components, react-aria, react-stately, @react-types/shared ship type declarations that import from react but don't declare @types/react.
With an install layout where packages live outside the project, such as pnpm's global virtual store (virtualStoreType: global), TypeScript resolves react from the package's real path. The react peer is linked next to the package, @types/react is not, so TypeScript picks the untyped react/index.js and every React type in these declarations silently becomes any.
Consumers see it as errors in their own code, for example TS7006: Parameter 'x' implicitly has an 'any' type on callback parameters, or component props that lose children and className. Under pnpm's default layout it only works through pnpm's hidden hoisting fallback (node_modules/.pnpm/node_modules).
Affected versions: [email protected], [email protected], [email protected], @react-types/[email protected]
Reproduction
pnpm 12.18.0:
mkdir repro && cd repro
echo '{ "name": "repro", "private": true }' > package.json
echo 'virtualStoreType: global' > pnpm-workspace.yaml
pnpm add react-aria-components react react-dom @types/react typescript
echo 'import "react-aria-components";' > index.ts
pnpm exec tsc --noEmit --traceResolution --module esnext --moduleResolution bundler --jsx react-jsx index.ts | grep "Module name 'react' was"
Expected: react resolves to @types/react/index.d.ts.
Actual: .../pnpm/store/v11/links/@/react/<version>/<hash>/node_modules/react/index.js
Suggested fix
"peerDependencies": {
"@types/react": "*"
},
"peerDependenciesMeta": {
"@types/react": { "optional": true }
}
Optional, so JavaScript consumers are unaffected. The range can mirror the existing react peer range. react-router, @tanstack/react-query and recharts (recharts#7710) do the same.
Consumer-side workarounds until then: pnpm's addMissingPeerTypes (pnpm 12.12+) or packageExtensions. Related: pnpm/pnpm#9739.
- Lingua principale
- TypeScript
- Stelle
- 16k
- Fork
- 1.6k
- Merge medio
- 4g 3h
- PR unite (30g)
- 39
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di adobe/react-spectrum
-
@internationalized/number: NumberParser misparses Arabic-digit numbers that use . , or ، (sd parses ١٬٢٣٤.٥ as 12345)Forse già presa @itsrayeedscodespace l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
adobe/react-spectrum#10936 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
PreviewTrigger: the preview dialog has no accessible nameForse già presa @therealemmanueloppong l’ha presa 3 giorni fa. Apertaaccessibility bug PreviewTrigger
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
adobe/react-spectrum#10917 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
S2 quiet Picker menu is always 192px wide: its width calc() has no unitForse già presa @darshpatel1052 l’ha presa 5 giorni fa. Apertawaiting on author
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 88/100
adobe/react-spectrum#10909 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
DatePicker omits timezone for initially empty fields despite zoned placeholderValueForse già presa @mrlexcoder l’ha presa 6 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
adobe/react-spectrum#10900 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Separator adds a redundant role="separator" to its default <hr>Forse già presa @Janani-bn l’ha presa 6 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
adobe/react-spectrum#10894 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di adobe/react-spectrum
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno
-
area/admin/user area/internationalization automated-triage issue/auto-triaged type/bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
grafana/grafana#137281 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
accessibility bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
Luen/crag-stats#429 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Missing assertions to legacy Cafe Menu block testsForse già presa @mariamanbar l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
freeCodeCamp/freeCodeCamp#71624 ·
I maintainer di solito rispondono entro 1 giorno