readonly
Un modificateur qui bloque la modification d’un champ après la création de l’objet.
Exemple
#interface Certificate {
readonly id: string
readonly issuedAt: string
owner: string
}
const cert: Certificate = { id: 'CW-2026-001', issuedAt: '2026-09-28', owner: 'Léa' }
cert.owner = 'Léa Dubois'
console.log(cert){ id: 'CW-2026-001', issuedAt: '2026-09-28', owner: 'Léa Dubois' }Définition et utilisation
#Le modificateur readonly avant le nom d’un champ fait qu’une fois l’objet créé, ce champ ne peut plus être modifié. Toute tentative d’affectation d’une nouvelle valeur se termine par une erreur de compilation.
C’est une protection au niveau des types, pas dans le programme en cours d’exécution : après compilation vers JavaScript, l’objet peut toujours être modifié. Pour bloquer la modification à l’exécution, utilisez Object.freeze().
readonly fonctionne aussi dans les classes (un champ affecté seulement dans le constructeur) et avec les tableaux (readonly string[]). Pour un type entier à la fois, utilisez Readonly<T>.
Syntaxe
#interface Name {
readonly field: type
}Plus d’exemples
#cert.id = 'CW-2026-999'
// Erreur : Cannot assign to 'id' because it is a read-only property.Bonnes pratiques
#- Marquez comme
readonlyles identifiants et les dates de création. Ces champs ne devraient pas changer. - N’oubliez pas que
readonlyest superficiel : un objet imbriqué reste modifiable.
Entrées associées
#- Readonly<Type>Crée un type dans lequel toutes les propriétés sont en lecture seule.
- Types d’objetsUne description de la forme d’un objet : quels champs il a et de quel type.
- public, private, protectedDes modificateurs d’accès qui déterminent d’où les champs et méthodes d’une classe peuvent être utilisés.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.