microsoft / microsoft/TypeScript

strictNullChecks not recognizing evaluated key in object

Offen
#15,705 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Domain: check: Control Flow
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

TypeScript Version: 2.3.2

Code
This version errors with strictNullChecks

export interface Opts {
    params?: { [s: string]: string };
}

let token;
let options: Opts = { params: {} };

if (token) {
    options.params["access_token"] = token;
}

This version does not error with strictNullChecks

export interface Opts {
    params?: { [s: string]: string };
}

let token;
let options: Opts = {};

options.params = {};

if (token) {
    options.params["access_token"] = token;
}

Expected behavior:
TS should recognize that params has been set in the object like it already does using a differently formatted method of initializing the variable.

Actual behavior:
TS fails to recognize that params has been set.

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

Reproduzieren Sie beide TypeScript 2.3.2-Snippets mit aktiviertem strictNullChecks und vergleichen Sie deren Control-Flow-Analyse der optionalen params-Eigenschaft. Verfolgen Sie den strictNullChecks-Typprüfungs-Einstiegspunkt, der Eigenschaftszuweisungen und indizierten Zugriff behandelt. Als erledigt gilt die Aufgabe, wenn die Objektliteral-Initialisierungsform params konsistent als zugewiesen erkennt wie die separat zugewiesene Form.

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
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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