microsoft / microsoft/TypeScript
NoInfer breaks discriminate union autocomplete
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
🔎 Search Terms
no infer discriminate union
🕗 Version & Regression Information
Tested on version 5.6.3
⏯ Playground Link
💻 Code
interface A {
type: 'a',
value: string;
}
interface B {
type: 'b',
size: number;
}
type Union = A | B;
function accept<T extends Union>(union: NoInfer<T>) {
}
accept({type: 'a'})
🙁 Actual behavior
When trying to autocomplete after writing type a the autocomplete doesn't work (but the result does get type checked):
🙂 Expected behavior
Even with NoInfer it should autocomplete the other properties of the "inferred" discriminate union case as it correctly type checks it if written wrong.
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 verknüpften TypeScript Playground-Reproduktion und vergleiche das Autocomplete-Verhalten mit dem bestehenden Type-Checking-Ergebnis für NoInfer und eine diskriminierte Union. Erledigt ist die Aufgabe, wenn nach der Eingabe von type 'a' die verbleibenden Eigenschaften des ausgewählten Union-Falls angeboten werden, während inkorrekte Werte weiterhin abgelehnt werden.
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
- 45/100