microsoft / microsoft/TypeScript
Generics in union should be inferred as `never` when possible
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
🔎 Search Terms
generics, inference, union, never
🕗 Version & Regression Information
This is the behavior in every version I tried, and I reviewed the FAQ for entries about union and never.
⏯ Playground Link
💻 Code
const f = <T,>(x: T | string, y: T | number) => y
f('a', 1) satisfies number // T is "a" now
const g = <T extends undefined>(x: T | number) => x
g(1) satisfies number // T is undefined now
🙁 Actual behavior
T is not never.
🙂 Expected behavior
T should be inferred as never, because it can be anything.
Additional information about the issue
This may be related to #42491.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der verlinkten TypeScript Playground-Reproduktion und vergleiche ihr Verhalten bei der generischen Inferenz mit dem des zugehörigen Issues #42491. Die Arbeit ist abgeschlossen, wenn T in beiden Beispielen als never inferiert wird und die satisfies-Prüfungen die erwarteten Ergebnisse liefern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100