Ces modificateurs de propriété contrôlent si une propriété est requise et si elle peut être réassignée.
Optional (?)
ts
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
Ces modificateurs de propriété contrôlent si une propriété est requise et si elle peut être réassignée.
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
Une propriété optionnelle a le type T | undefined, le compilateur vous force donc à gérer le cas d'absence — prévenant les erreurs "cannot read property of undefined".
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 1, y: 2 };
p.x = 5; // ❌ Error: cannot assign to readonly property
// arrays too
const nums: readonly number[] = [1, 2, 3];
nums.push(4); // ❌ push doesn't exist on readonly array
readonly s'applique uniquement à la compilation (pas d'exécution à l'exécution), mais il documente et applique l'immuabilité dans le système de types, capturant les mutations accidentelles.
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? modélise les données vraiment optionnelles et applique la sécurité null ; readonly exprime et applique l'immuabilité (excellent pour la configuration, les props et pour éviter les mutations d'état accidentelles).
Les deux font passer la vérification de correction dans le compilateur.