यी property modifiers नियन्त्रण गर्छन् कि property आवश्यक छ वा छैन र यो पुन: असाइन गरिन सक्छ वा सक्दैन।
Optional (?)
ts
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
यी property modifiers नियन्त्रण गर्छन् कि property आवश्यक छ वा छैन र यो पुन: असाइन गरिन सक्छ वा सक्दैन।
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
एक optional property को प्रकार T | undefined छ, त्यसकारण compiler ले तपाईंलाई अनुपस्थित केस ह्यान्डल गर्न बाध्य गर्छ — "cannot read property of undefined" bugs रोक्छ।
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 केवल compile-time हो (कुनै runtime enforcement छैन), तर यो immutability लाई दस्तावेज गर्छ र type system मा लागू गर्छ, अनजाने mutations पक्षपात गर्छ।
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? साँचै optional डेटा मोडेल गर्छ र null-safety लागू गर्छ; readonly immutability व्यक्त गर्छ र लागू गर्छ (config, props, र अनजाने state mutation रोकनको लागि बढिया)।
दुवै correctness checking compiler मा धकेल्छन्।