"Did you mean parent object or child property?" in error messsages

Offen
#35,738 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
30/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
typescript
Bereich
compilers

Rechercherichtung

Es werden keine Dateien oder Tests genannt. Beginne damit, die beiden strict-mode-Beispiele im Issue zu reproduzieren und die TypeScript-Checker-Diagnostics nachzuverfolgen, die sie erzeugen. Fertig ist die Aufgabe, wenn die relevanten Fehler einen nützlichen Hinweis zur Auswahl einer übergeordneten Eigenschaft oder zum Zugriff auf eine untergeordnete Eigenschaft geben können und das Verhalten durch geeignete Tests abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Domain: Error Messages Effort: Moderate Experience Enhancement Help Wanted Suggestion

Discussed with @RyanCavanaugh from his personal dev experience.

It's common to get an error message when accidentally using an inner property of an object. Similarly, we might forget to actually fetch an inner property of an object.

// @strict: true

interface Person {
  residence: House;
}

interface House {
  isHouseOfPain: boolean;
}

declare let home: House;
declare let person: Person;

   home = person.residence.isHouseOfPain;
// ~~~~
// error: Type 'boolean' is not assignable to type 'House'.

   home = person;
// ~~~~
// error: Property 'isHouseOfPain' is missing in type 'Person' but required in type 'House'.
//   related: 'isHouseOfPain' is declared here.

It'd be nice if we could hint to the user "hey, you might have dotted too far into this object" or "hey, did you mean to grab the residence property?"

Vorherrschende Sprache
Go
Sterne
111k
Forks
14.4k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/TypeScript

Alle Issues in microsoft/TypeScript

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

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