TypeScriptTypes de base

Types d’objets

Une description de la forme d’un objet : quels champs il a et de quel type.

Sur cette page

Exemple

#
TypeScript
function greet(user: { name: string; level: number }): string {
  return `Salut ${user.name}, vous avez le niveau ${user.level}`
}

console.log(greet({ name: 'Emma', level: 4 }))
Résultat
Salut Emma, vous avez le niveau 4

Définition et utilisation

#

Un type d’objet énumère ses propriétés avec leurs types : { name: string; level: number }. Un objet assigné à une telle variable doit avoir tous les champs requis, avec des types compatibles.

Pour les littéraux d’objets, le compilateur vérifie aussi les champs excédentaires. Une faute de frappe dans le nom d’un champ, par exemple levle, est signalée, au lieu d’ajouter silencieusement une propriété inutilisée.

Les types d’objets qui se répètent dans le code valent la peine d’être nommés avec type ou interface. Vous marquez les champs optionnels avec un point d’interrogation, et les champs en lecture seule avec le mot readonly.

Syntaxe

#
Syntaxe
let object: { field: type; second?: type }

Plus d’exemples

#
Un champ excédentaire dans le littéral
TypeScript
greet({ name: 'Lucas', levle: 3 })
// Erreur : Object literal may only specify known properties, and 'levle' does not exist in type '{ name: string; level: number; }'.

Bonnes pratiques

#
  • Quand la même forme d’objet apparaît une seconde fois, donnez-lui un nom avec type ou interface.
  • Séparez les champs par des points-virgules ou des virgules, mais restez cohérent dans tout le projet.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.