microsoft / microsoft/TypeScript
`x && x` should not be `NonNullable`
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
logical and, generic, NonNullable
🕗 Version & Regression Information
There has been this problem since 4.8.4 (I tried it on the playground)
⏯ Playground Link
💻 Code
const f = <T,>(x: T) => x && x // <T>(x: T) => NonNullable<T>
🙁 Actual behavior
Since f returns NonNullable<T>, we can make every value NonNullable, and never can be created by calling f(null).
🙂 Expected behavior
f should return T.
Additional information about the issue
No response
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 untersuche, wie der Type Checker den Rückgabetyp des generischen logischen Und-Ausdrucks ableitet. Überprüfe das Verhalten für die gezeigte generische Funktion und bestätige, dass der resultierende Typ das gemeldete Ergebnis aus NonNullable und never nicht mehr zulässt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100