microsoft / microsoft/TypeScript
Cannot construct optional tuple elements from spreading 0-1 length Array literals
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia dall’esempio collegato di TypeScript Playground e riproduci le diagnostiche per le tre assegnazioni di tuple nelle versioni del compilatore elencate. Traccia il comportamento del controllo dei tipi di tuple e spread, quindi verifica che gli spread vuoti, gli spread con un elemento e gli spread condizionali con 0–1 elementi siano accettati per l’elemento opzionale della tupla senza introdurre errori di assegnazione più ampi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100