पाठ 11 / 26

वैकल्पिक और readonly प्रॉपर्टीज़

प्रॉपर्टीज़ को हमेशा-मौजूद-नहीं, या कभी-न-बदलने वाला चिह्नित करें।

वैकल्पिक प्रॉपर्टीज़

प्रॉपर्टी नाम के बाद ? का मतलब है कि यह ऑब्जेक्ट में पूरी तरह ग़ायब हो सकती है।

interface Config {
  host: string;
  port?: number;   // optional
}

const c1: Config = { host: "localhost" };        // OK
const c2: Config = { host: "localhost", port: 8080 }; // OK

readonly प्रॉपर्टीज़

readonly, किसी प्रॉपर्टी को एक बार (आमतौर पर बनते समय) सेट करने देता है पर बाद में दोबारा असाइनमेंट रोक देता है।

interface Point {
  readonly x: number;
  readonly y: number;
}

const p: Point = { x: 0, y: 0 };
p.x = 10;
// Error: Cannot assign to 'x' because it is a read-only property.

readonly केवल कंपाइल-टाइम पर

readonly कंपाइल-टाइम पर मिटा दिया जाता है — यह TS कोड में सुरक्षा देता है, उस JS कोड से नहीं जो रनटाइम पर टाइप्स को नज़रअंदाज़ करता है।