microsoft / microsoft/TypeScript

Two consecutive variadic elements in the middle part of tuple type can't be recognized

Aperta
#62,561 3 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@ahejlsberg ci sta già lavorando.

Dal 8/10/2025.

Needs Investigation
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
2g 4h
PR unite (30g)
132

Descrizione

### 🔎 Search Terms

tuple, variadic element

### 🕗 Version & Regression Information
Since 4.0.5

### ⏯ Playground Link

https://www.typescriptlang.org/play/?#code/GYVwdgxgLglg9mABMAPAFUQUwB5U2AEwGdFwBrMOAdzAG0BdAGkQDUtd9jSwLq76AfAApsALloAjOHAA2mAIZhmAOlUsVqtE0Srl8gE4BzIqJYBKRAG8AUIjt39mKCH1JsAbmsBfRNesQEIihEeUQAXmQhWih9EExmACZmACIJZOYYuO0ARhT5ZMQzd0QAehKAUX19OH1mHAAHTGhMAkQEkKMQAFt8KCJmCRBgwzhggGYgA

### 💻 Code

```ts
function f(x:[boolean, ...V, ...U], ...args:V) {
return x;
}

const a = f([true, 2, "b", true], 1, "a" ); //Error, expected 2 arguments, but got 3
```

### 🙁 Actual behavior

Compiler sees error

### 🙂 Expected behavior

No error, because as https://github.com/microsoft/TypeScript/pull/39094 states

> If the middle part of T is exactly two variadic elements ...A and ...B, and an implied arity exists for A, infer from a tuple consisting of the initial middle part of S to A and from a tuple consisting of the remaining middle part of S to B, where the length of the initial middle part corresponds to the implied arity for A.

As I understand the middle part of **S** is `2, "b", true` and in the middle part of **T** we have **...V**, **...U** then `2, "b"` is **...V** and `true` is **...U**.

### Additional information about the issue

https://stackoverflow.com/posts/79784883/edit

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.