microsoft / microsoft/TypeScript
Inference breaks when a function returns a tuple with another function
Offen
Dieses Issue hat noch niemand übernommen.
Bug
Domain: check: Type Inference
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
Bug Report
🔎 Search Terms
Inference, tuple, generic, callback, higher-order function
🕗 Version & Regression Information
v4.3.2 and below (tested down to v3.3.3)
⏯ Playground Link
Playground link with relevant code
💻 Code
declare function a(): [
<T>(arg: T) => T
]
declare function b<T, U>(a1: T, a2: [(a: T) => U]): U
b(1, [a()[0]]) // returns number, as expected
b(1, a()) // returns unknown (expected a number)
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
Beginnen Sie mit dem verlinkten TypeScript Playground und reproduzieren Sie den Unterschied zwischen b(1, [a()[0]]) und b(1, a()). Verfolgen Sie das Inferenzverhalten für den generischen Callback, der innerhalb des Tupels zurückgegeben wird. Die Aufgabe ist abgeschlossen, wenn der zweite Aufruf number statt unknown inferiert, mit Abdeckung für den gezeigten Regressionsfall.
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