microsoft / microsoft/TypeScript

spreading generic type disables excess property checking

Offen
#30,129 1 Kommentar 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Domain: check: Excess Property Checking
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.4k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

TypeScript Version: 3.3.3333

Search Terms: generic spread

Code

function spread<T extends {foo: string}>(p: T): {foo: string} {
    return {...p, bar: ''};
}

Expected behavior:

Excess property error for bar.

Actual behavior:

No error.

Playground Link: http://www.typescriptlang.org/play/#src=function%20spread%3CT%20extends%20%7Bfoo%3A%20string%7D%3E(p%3A%20T)%3A%20%7Bfoo%3A%20string%7D%20%7B%0D%0A%20%20%20%20return%20%7B...p%2C%20bar%3A%20''%7D%3B%0D%0A%7D

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem TypeScript 3.3.3333-Reproducer im Issue und untersuche, wie die Prüfung auf überschüssige Eigenschaften mit einem Object-Spread aus einem generischen Typ umgeht. Als erledigt gilt die Aufgabe, wenn das Beispiel einen Fehler wegen einer überschüssigen Eigenschaft für bar meldet und ein Regressionstest dieses Verhalten abdeckt; im Issue ist keine Quelldatei und kein Testpfad genannt.

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
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.