AnyCompiler

Generics

Ek generic function ek aise type ke sath kaam karta hai jo function call hone par decide hota hai, define hone par nahi. Yeh TypeScript ka woh tareeqa hai jisse "yeh type ke bina hisaab kiye same tarah kaam karta hai" zaahir hota hai — ek array-reverse karne wale function ko strings aur numbers ke liye alag version ki zaroorat nahi honi chahiye.

function firstElement<T>(items: T[]): T {
  return items[0];
}

console.log(firstElement([1, 2, 3]));
console.log(firstElement(["a", "b", "c"]));
Output
1
a

T ek placeholder hai — TypeScript ise us type se fill kar deta hai jo aap asal mein pass karte hain, aur return type match karne ke liye lock ho jaata hai. firstElement([1, 2, 3]) ke baare mein pata hota hai ke yeh ek number wapas karega; firstElement(["a", "b"]) ke baare mein pata hota hai ke yeh ek string wapas karega.

Generic interfaces

Interfaces bhi generic ho sakte hain — "kisi value ko hold karne wala ek box" jaisi shape ke liye kaam aata hai, jahan value ka type badalta rehta hai.

interface Box<T> {
  value: T;
}

let numberBox: Box<number> = { value: 42 };
let stringBox: Box<string> = { value: "hello" };

console.log(numberBox.value, stringBox.value);
Output
42 hello

Aage: conditional statements — ek value par branch karna, bilkul kisi bhi doosri language ki tarah.