microsoft / microsoft/TypeScript

Union type in element access can prevent deprecated warning from triggering

Offen
#41,293 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

TypeScript Version: 4.1.0-dev.20201027

Search Terms: Deprecated tag, union, element access

Code

const foo = {
    faff() { },

    /** @deprecated */
    fluff() { }

}

declare const k: "faff" | "fluff";

//Expected: deprecation warning
//Actual: no warning
foo?.[k]?.();

const bar = {
    /** @deprecated */
    faff() { },

    fluff() { }
}

//Expected: deprecation warning
//Actual: deprecation warning
bar?.[k]?.();

Expected behavior:

foo?.[k]?.(); should show deprecated warning because if k is "fluff", then we'll be calling a deprecated method.

Actual behavior:

foo?.[k]?.(); has no deprecated warning.

Playground Link: Playground

Related Issues: Couldn't find any

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 der verlinkten TypeScript-Playground-Reproduktion und vergleiche die Fälle foo?.[k]?.() und bar?.[k]?.() unter Verwendung der gemeldeten TypeScript-Version. Verfolge, wie Warnungen wegen Veraltung für optionalen Elementzugriff mit Union-Schlüsseln erzeugt werden; abgeschlossen ist die Aufgabe, wenn der foo-Fall eine Warnung wegen Veraltung meldet, ohne den bestehenden bar-Fall zu beeinträchtigen.

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

Neue Issues direkt in Ihr Postfach

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