microsoft / microsoft/TypeScript
Cannot construct optional tuple elements from spreading 0-1 length Array literals
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
TS 4.0.5, 4.2.2 and 4.3.0-dev20210314
declare let bar: [string, number?];
declare let foo: boolean;
bar = ["", ...[]];
bar = ["", ...[1]];
bar = ["", ...(foo ? [1]: [])];
Type '[string, ...never[]]' is not assignable to type '[string, (number | undefined)?]'.
Target allows only 2 element(s) but source may have more.(2322)
Type '[string, ...number[]]' is not assignable to type '[string, (number | undefined)?]'.
Target allows only 2 element(s) but source may have more.(2322)
Type '[string, ...number[]]' is not assignable to type '[string, (number | undefined)?]'.(2322)
Unexpected Errors
Expected ...[] to have no effect when recipient is tuple
Expected ...[1] to resolve into number when recipient is tuple
Expected (foo ? [1]: []) to resolve into a union of the above when recipient is tuple
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
Beginne mit dem verknüpften TypeScript Playground-Beispiel und reproduziere die Diagnosen für die drei Tupelzuweisungen über die aufgeführten Compiler-Versionen hinweg. Verfolge das Verhalten der Typprüfung von Tupeln und Spreads und verifiziere anschließend, dass leere Spreads, Spreads mit einem Element und bedingte Spreads mit 0–1 Elementen für das optionale Tupel-Element akzeptiert werden, ohne weitergehende Zuweisungsfehler einzuführen.
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