microsoft / microsoft/TypeScript
Can't destruct a Partial<T> into T that uses default values
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
TypeScript Version: 4.2.0-dev.20201219
Search Terms: Destructuring with partial and default value
Code
type T = {a: number};
const t: Partial<T> = {};
const {a = 10}: T = t;
Expected behavior:
This should be allowed. For each prop with a default value, the undefined type should be Exclude'd from the source object.
Actual behavior:
Throws:
Type 'Partial<T>' is not assignable to type 'T'.
Types of property 'a' are incompatible.
Type 'number | undefined' is not assignable to type 'number'.
Type 'undefined' is not assignable to type 'number'.
Playground Link:
https://www.typescriptlang.org/play?ts=4.2.0-dev.20201219#code/C4TwDgpgBAKlC8UDeBDAXFAdgVwLYCMIAnAXwG4BYAKAGMB7TAZ2CmAwAUUjgBLFAGwA8MAHwJk5avSYtU4gIwAGEhjiJgZIA
Related Issues:
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 bereitgestellten TypeScript Playground-Reproduktion und vergleiche das erwartete und das tatsächliche Verhalten der Destrukturierungszuweisung. Das Issue nennt keine Quelldateien oder Tests, daher verfolge den Type-Checking-Pfad für Destrukturierung mit einem Standardwert und Partial. Als erledigt gilt die Aufgabe, wenn das Beispiel akzeptiert wird und dabei die beabsichtigte Typsicherheit erhalten bleibt, mit einer Abdeckung für diesen Fall.
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
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100