microsoft / microsoft/TypeScript

Type guards doesn't work with iterables for arrays

Offen
#37,999 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

TypeScript Version: 3.7.x-dev.20200410

Search Terms:

Code

declare function f(a: any): a is any[];
declare const a: Iterable<number>;

f(a) && a;

Expected behavior:
Narrowed a's type is number[].
Actual behavior:
Narrowed a's type is any[].

Playground Link: https://www.typescriptlang.org/play/?ts=3.9.0-dev.20200410&ssl=1&ssc=1&pln=4&pc=11#code/CYUwxgNghgTiAEAzArgOzAFwJYHtVIAooAueKVATwEpSp4sBnMygbQF0BuAKFElgTB4GGMqQCSGEDCgAjCCAA8qZAFsZUgHzcuiIlXgAyA2Q5A

Related Issues: #32497 #17002

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 im Issue verlinkten TypeScript-Playground-Reproduktion und vergleiche die gemeldete Eingrenzung für ein durch f geschütztes Iterable. Verfolge das Verhalten der Eingrenzung durch Type Guards bei Array-Prädikaten und überprüfe, dass der eingegrenzte Typ den Elementtyp des Iterables wie im erwarteten Verhalten beschrieben beibehält.

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.