0Pricing
TypeScript Academy · Leçon

Éléments rest des tuples

Utiliser des éléments rest dans les types de tuples.

Éléments rest des tuples est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 4 leçons au total.

Tuples de longueur variable

Les tuples ont normalement une longueur fixe, mais un élément de reste permet à une position d’absorber un nombre quelconque d’éléments. Cela permet de modéliser des données dont une partie est fixe et l’autre variable.

Un élément de reste final

Écrivez [string, ...number[]] pour signifier : une chaîne, puis zéro ou plusieurs nombres. Le premier emplacement est fixe ; le reste peut s’allonger librement.

type Row = [string, ...number[]]
const r: Row = ["scores", 9, 8, 7]
console.log(r[0], r.length) // scores 4

La partie fixe est obligatoire

Les éléments fixes placés au début doivent être présents. La partie restante peut être vide, mais les emplacements fixes ne peuvent pas être omis.

type Row = [string, ...number[]]
const min: Row = ["label"] // ok, zero numbers
// const bad: Row = [] // Error: missing string
console.log(min)

Élément de reste initial

Un élément de reste peut également venir en premier, avec des éléments fixes après lui. Cela permet de modéliser une tête variable suivie d’une fin fixe.

type Trailing = [...number[], boolean]
const t: Trailing = [1, 2, 3, true]
console.log(t[t.length - 1]) // true

Élément de reste central

Le reste peut se trouver au milieu, entre des éléments fixes au début et à la fin. TypeScript détermine quelles positions sont fixes à chaque extrémité.

type Middle = [string, ...number[], boolean]
const m: Middle = ["start", 1, 2, false]
console.log(m[0], m[m.length - 1]) // start false

Un seul reste par tuple

Un tuple peut contenir au maximum un élément de reste. Deux éléments de reste rendraient les positions des éléments ambiguës ; cette construction est donc interdite.

// type Bad = [...string[], ...number[]] // Error: only one rest allowed
type Ok = [string, ...number[]]
const o: Ok = ["x", 1]
console.log(o)

Déstructuration d’un tuple avec reste

La déstructuration s’aligne parfaitement sur les éléments de reste d’un tuple. Les liaisons fixes occupent les emplacements fixes ; une liaison de reste capture la partie variable sous la forme d’un tableau typé.

type Row = [string, ...number[]]
const row: Row = ["scores", 9, 8]
const [label, ...values] = row
console.log(label, values) // scores [9, 8]

Éléments de tuple étiquetés

Vous pouvez nommer les positions d’un tuple à des fins de documentation. Les étiquettes apparaissent dans les info-bulles et les signatures, mais ne modifient pas les valeurs à l’exécution.

type Range = [start: number, end: number]
const span: Range = [0, 10]
console.log(span[0], span[1]) // 0 10

Étiquettes sur les éléments de reste

Les éléments de reste peuvent eux aussi être étiquetés, ce qui est particulièrement utile dans les tuples de paramètres de fonction pour obtenir des indications lisibles.

type Args = [command: string, ...flags: string[]]
const a: Args = ["build", "--watch", "--minify"]
console.log(a[0], a.slice(1))

Tuples avec reste comme listes de paramètres

Un tuple avec un élément de reste peut décrire la liste de paramètres d’une fonction, ce qui permet de créer, grâce à la décomposition, des signatures précises avec une partie fixe suivie d’une partie variadique.

type Params = [name: string, ...scores: number[]]
function report(...args: Params): string {
  const [name, ...scores] = args
  return name + ": " + scores.join(",")
}
console.log(report("Ada", 9, 8))

Pourquoi les tuples avec reste sont importants

Les tuples avec reste expriment des structures que les tableaux ordinaires ne peuvent pas représenter : un en-tête obligatoire suivi d’un corps variable, un corps variable suivi d’un pied obligatoire, ou les deux. Ils constituent la base du typage des fonctions variadiques.

type CSVRow = [id: number, ...fields: string[]]
const row: CSVRow = [1, "Ada", "Engineer"]
console.log(row[0], row.slice(1))

Vérification rapide

Testez votre compréhension des éléments de reste des tuples.

Récapitulatif

Un élément de reste de tuple (...T[]) permet à une position d’absorber un nombre quelconque d’éléments, tandis que les éléments fixes au début et à la fin restent obligatoires. Le reste peut être final, initial ou central, mais un tuple ne peut contenir qu’un seul élément de reste. La déstructuration s’aligne sur ces structures, les étiquettes ajoutent des indications lisibles et les tuples avec reste constituent la base du typage des fonctions variadiques.

Questions Fréquemment Posées

La leçon « Éléments rest des tuples » est-elle gratuite ?

Oui — le texte complet de « Éléments rest des tuples » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Éléments rest des tuples » ?

Utiliser des éléments rest dans les types de tuples. Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer TypeScript Academy ?

Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Éléments rest des tuples » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?

Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Paramètres rest dans les fonctions
  2. Opérateur spread dans les tableaux et les objets
  3. Éléments rest des tuples
  4. Typer les fonctions variadiques
← Retour à TypeScript Academy