Këta modifikatorë të pronës kontrollojnë nëse një pronë është e detyrueshme dhe nëse mund të riënderohet.
Opsional (?)
ts
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
Këta modifikatorë të pronës kontrollojnë nëse një pronë është e detyrueshme dhe nëse mund të riënderohet.
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
Një pronë opsionale ka llojin T | undefined, kështu që përpilatori të detyron të trajtosh rastin e mungesës — duke parandaluar gabimet «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 është vetëm në kohën e përpilimit (pa zbatim në runtime), por dokumenton dhe zbaton papërsonësinë në sistemin e tipeve, duke kapur mutacionet aksidentale.
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? modelon të dhëna vërtet opsionale dhe detyron sigurinë null; readonly shpreh dhe zbaton papërsonësinë (e shkëlqyer për config, props dhe parandalimin e mutacionit aksidental të gjendjes).
Të dy shtyjnë kontrollimin e saktësisë në përpilator.