microsoft / microsoft/TypeScript

"Infer types from usage" not consider js object initializer

Offen
#37,099 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Experience Enhancement Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

TypeScript Version: Nightly
Search Terms: infer types from usage
Code

function foo(/*infer parameters from usage 'here'*/x) {
	let obj1: { a: string } = { a: '' }
	obj1.a = x;
	let obj2: { a: boolean } = { a: true };
	obj2.a = x;
	bar({ a: x });
}

function bar(obj: { a: object }) {
}

Expected behavior:
foo become to foo(x: string|boolean|object)
Actual behavior:
foo become to foo(x: string|boolean)
Playground Link: Playground

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

Beginnen Sie mit der verlinkten TypeScript Playground-Reproduktion und vergleichen Sie den inferierten Typ von foo mit der erwarteten Signatur. Verfolgen Sie, wie die Verwendunginferenz obj1.a = x, obj2.a = x und bar({ a: x }) behandelt; die Behebung ist abgeschlossen, wenn die Verwendung des Objektliterals object zur inferierten Union beiträgt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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