microsoft / microsoft/TypeScript
Bug in typing iterable iterator with symbol
Offen
Dieses Issue hat noch niemand übernommen.
Bug
Domain: Literal Types
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
TypeScript Version: 3.6.0-dev.20190713
Search Terms: symbol iterableiterator
Code
const Foo = Symbol()
type FooType = typeof Foo
type SomeType = number | FooType
function giveMeSomeType(): SomeType {
return (Math.random() > 0.5) ? 42 : Foo
}
const it: IterableIterator<SomeType> = [giveMeSomeType()][Symbol.iterator]()
Expected behavior: local constant it is typechecked correctly
Actual behavior:
Typechecking fails with error:
index.ts:10:7 - error TS2322: Type 'IterableIterator<number | symbol>' is not assignable to type 'IterableIterator<SomeType>'.
Type 'number | symbol' is not assignable to type 'SomeType'.
Type 'symbol' is not assignable to type 'SomeType'.
10 const it: IterableIterator<SomeType> = [giveMeSomeType()][Symbol.iterator]()
Related Issues: couldn't find
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das Beispiel aus index.ts im verlinkten Playground und bestätige den gemeldeten Zuweisbarkeitsfehler für IterableIterator. Verfolge, wie Iterable-Iterator-Typen die Union number | symbol behandeln, und überprüfe anschließend, dass das Beispiel ohne den Fehler TS2322 typgeprüft wird.
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
- 48/100