0Pricing
TypeScript Academy · Leçon

Propriétés readonly et propriétés de paramètres

Utilisez readonly et la syntaxe abrégée des propriétés de constructeur

Propriétés readonly et propriétés de paramètres 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.

Bienvenue

readonly empêche les propriétés d’être modifiées après leur initialisation. Les propriétés de paramètre combinent déclaration et initialisation en une seule ligne du constructeur.

readonly sur les propriétés de classe

Déclarez une propriété readonly pour permettre de lui attribuer une valeur une seule fois (dans le constructeur), puis empêcher toute modification ultérieure.
class Invoice {
  readonly invoiceId: string;
  constructor(id: string) { this.invoiceId = id; }
}
const inv = new Invoice('INV-001');
// inv.invoiceId = 'INV-002'; // Error!

readonly dans les interfaces

readonly fonctionne également dans les interfaces et les types objet pour empêcher la réaffectation d’une propriété.
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error

Propriétés de paramètre

Préfixez un paramètre de constructeur avec un modificateur d’accès pour déclarer une propriété et lui attribuer une valeur en une seule étape.
class Product {
  constructor(
    public name: string,
    public price: number,
    private sku: string
  ) {} // no need to write this.name = name; etc.
}

Propriétés de paramètre readonly

Combinez `readonly` avec un modificateur d’accès pour les propriétés de paramètre.
class Config {
  constructor(
    public readonly host: string,
    public readonly port: number = 3000
  ) {}
}

Initialisation dans les déclarations

Vous pouvez initialiser une propriété readonly au moment de sa déclaration. Elle ne pourra plus être modifiée ensuite.
class AppVersion {
  readonly version: string = '1.0.0';
  readonly buildDate: Date = new Date();
}

readonly ou const

`const` s’applique aux variables limitées à un bloc. `readonly` s’applique aux propriétés de classe et aux membres de types objet. Ces deux notions concernent des portées différentes.
const API_KEY = 'secret'; // block variable
class Service {
  readonly key: string = API_KEY; // class property
}

Type objet en lecture seule

Le type utilitaire `Readonly` rend toutes les propriétés de T readonly. Il est utile pour créer des instantanés immuables.
interface User { name: string; age: number; }
const frozen: Readonly<User> = { name: 'Alice', age: 30 };
// frozen.name = 'Bob'; // Error

readonly ne gèle pas les objets en profondeur

Comme ReadonlyArray, readonly empêche uniquement la réaffectation de la propriété elle-même, et non la modification de l’objet vers lequel elle pointe.
class Team {
  readonly members: string[] = [];
}
const t = new Team();
t.members.push('Alice'); // Allowed — the array itself is mutable!
// t.members = []; // Error — can't reassign the property

Les propriétés de paramètre évitent le code répétitif

Sans propriétés de paramètre, vous devez déclarer le champ, déclarer le paramètre du constructeur, puis effectuer l’affectation. Avec elles, une seule ligne accomplit ces trois tâches.
// Without parameter properties (verbose)
class A {
  private x: number;
  constructor(x: number) { this.x = x; }
}
// With parameter properties (concise)
class B {
  constructor(private x: number) {}
}

Quand éviter les propriétés de paramètre

Certaines équipes évitent les propriétés de paramètre dans les grandes classes, car elles masquent les déclarations de propriétés dans le corps de la classe, ce qui réduit la lisibilité d’un coup d’œil.

Vérification rapide

Lorsque vous utilisez une propriété de paramètre en TypeScript, qu’est-ce qui reste TRUE concernant le modificateur readonly ?

Récapitulatif

readonly empêche la modification d’une propriété après la construction. Les propriétés de paramètre (modificateur d’accès + nom du paramètre) déclarent et initialisent les propriétés en une seule ligne. Combinez les deux pour concevoir des classes concises et immuables.

Questions Fréquemment Posées

La leçon « Propriétés readonly et propriétés de paramètres » est-elle gratuite ?

Oui — le texte complet de « Propriétés readonly et propriétés de paramètres » 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 « Propriétés readonly et propriétés de paramètres » ?

Utilisez readonly et la syntaxe abrégée des propriétés de constructeur 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 « Propriétés readonly et propriétés de paramètres » ?

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. Classes et constructeurs TypeScript
  2. Modificateurs public, private et protected
  3. Propriétés readonly et propriétés de paramètres
  4. Implémenter des interfaces avec des classes
← Retour à TypeScript Academy