Types d’objets
Une description de la forme d’un objet : quels champs il a et de quel type.
Exemple
#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 }))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
#let object: { field: type; second?: type }Plus d’exemples
#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
typeouinterface. - Séparez les champs par des points-virgules ou des virgules, mais restez cohérent dans tout le projet.
Entrées associées
#- interfaceUne description nommée de la forme d’un objet, que vous pouvez étendre et fusionner.
- typeUn alias de type : un nom pour n’importe quel type, y compris les unions, les tuples et les types complexes.
- Propriétés optionnelles (?)Des propriétés qui peuvent, mais ne doivent pas obligatoirement, apparaître dans un objet.
- readonlyUn modificateur qui bloque la modification d’un champ après la création de l’objet.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.