microsoft / microsoft/TypeScript

--noImplicitAny codefix inferring string for complex object

Offen
#29,324 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

TypeScript Version: 3.3.0-dev.20190108

Search Terms: noimplicitany infer code fix codefix string object data

Code

function cleanup(data) {
  if (Array.isArray(data)) {
    return data.map(cleanup)
  }
  if (!data || typeof data !== 'object') return data

  let keys = Object.keys(data)
  if (keys.length <= 3 &&
    data.name &&
    (keys.length === 1 ||
      keys.length === 3 && data.email && data.url ||
      keys.length === 2 && (data.email || data.url))) {
    data = unparsePerson(data)
  }
  return data
}

Expected behavior:

--noImplicitAny suggested fix on the data parameter: unclear what this should be. Perhaps a fancy type union containing an anonymous object type with fields such as name and url?

Actual behavior:

function cleanup(data: string) {

Related Issues: #13243 (parent tracking quick fixes)

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 noImplicitAny-Codefix, der den cleanup-Parameter annotiert, und reproduziere das Verhalten mithilfe des TypeScript-Snippets in diesem Issue. Lies das verwandte Issue #13243 zum Kontext des übergeordneten quick-fix; abgeschlossen bedeutet, dass der Codefix für diesen komplexen Objektfall nicht mehr string ableitet und sein resultierendes Verhalten dem vereinbarten erwarteten Typ entspricht.

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
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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