`makePersisted()` cannot correctly infer types under Typescript 7
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
- Ambito
- developer-experience
Direzione di ricerca
Inizia dal punto di ingresso makePersisted e riproduci il fallimento dell’inferenza del tipo da src/App.tsx usando l’esempio StackBlitz collegato. Esegui tsc --noEmit con la chiamata createSignal("hello") e confrontala con la versione con generico esplicito. Il lavoro è completato quando la chiamata con inferenza dei tipi supera il controllo dei tipi senza richiedere tipi espliciti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
const [thing, setThing] = makePersisted(createSignal("hello"), {
name: "thing",
storage: localStorage,
});
> tsc --noEmit
src/App.tsx(8,43): error TS2769: No overload matches this call.
The last overload gave the following error.
Argument of type 'Signal<string>' is not assignable to parameter of type 'Signal<unknown> | [unknown, SetStoreFunction<unknown>]'.
Type '[get: Accessor<string>, set: Setter<string>]' is not assignable to type 'Signal<unknown>'.
Type at position 1 in source is not compatible with type at position 1 in target.
Type 'Setter<string>' is not assignable to type 'Setter<unknown>'.
Target signature provides too few arguments. Expected 1 or more, but got 0.
Currently, the only way to fix it seems to be to provide full, explicit types:
const [thing, setThing] = makePersisted<string, Signal<string>>(createSignal("hello"), {
name: "thing",
storage: localStorage,
});
Minimal Reproduction Link
- Lingua principale
- TypeScript
- Stelle
- 1.6k
- Fork
- 162
- Merge medio
- 19h 40m
- PR unite (30g)
- 8
Guida per i contributori
Apri 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 solidjs-community/solid-primitives
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 52/100
solidjs-community/solid-primitives#830 · 2 commenti ·
Tutte le issue di solidjs-community/solid-primitives
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
[Bug]: Matrix progress drafts fail with "Matrix runtime not initialized" during tool activity Apertabug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
calcite-components needs triage refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Esri/calcite-design-system#15203 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
danielmiessler/LifeOS#2218 ·