Objects aur Interfaces
Ek interface us shape ko describe karta hai jo ek object ke paas honi chahiye — usko kaunsi properties chahiye, aur har ek kis type ki hai. Ek baar likhne ke baad, TypeScript har us object ko check karta hai jise aap claim karte hain ke woh isse match karta hai.
interface Person {
name: string;
age: number;
}
let alice: Person = { name: "Alice", age: 30 };
console.log(alice);
console.log(alice.name);{ name: 'Alice', age: 30 }
AliceOptional properties aur readonly
Property name ke baad ek ? usko optional bana deta hai — ek object usko poori tarah chhor bhi sakta hai. readonly ek aisi property ko mark karta hai jise ek baar set kiya ja sakta hai (usually jab object create hota hai) lekin uske baad kabhi reassign nahi kiya ja sakta.
interface Product {
readonly id: number;
name: string;
discount?: number;
}
let item: Product = { id: 1, name: "Keyboard" };
console.log(item);
item.name = "Mechanical Keyboard";
console.log(item);{ id: 1, name: 'Keyboard' }
{ id: 1, name: 'Mechanical Keyboard' }item.id = 2 foran flag ho jaayega — readonly compile time par enforce hota hai, bilkul waise hi jaise har doosra type rule hota hai.
Aage: type aliases aur union types — ek type ko naam dena, aur ek aisi value describe karna jo ek se zyada type ki ho sakti hai.