Generic Constraints
extends, keyword, se, EK, GENERIC, TYPE, ko, RESTRICT, kiya, ja, sakta hai — sirf, WOHI, types, ALLOWED, HAIN, JO, EK, SPECIFIC, SHAPE, MATCH, karte, HAIN.
Constraints, se, GENERIC, functions, ke, ANDAR, SPECIFIC, PROPERTIES, ko, SAFELY, ACCESS, kiya, ja, sakta hai — bina, constraint, ke, TypeScript, ko, PATA, nahi, hoga, ki, WOH, PROPERTY, EXIST, karti, hai, YA, nahi.
interface HasLength {
length: number;
}
function logLength<T extends HasLength>(item: T): T {
console.log(item.length); // safe — T, guaranteed, length, property, RAKHТА, hai
return item;
}
logLength("hello"); // OK — strings, mein, length, hai
logLength([1, 2, 3]); // OK — arrays, mein, length, hai
// logLength(42); // ERROR — numbers, mein, length, nahi, hai- extends = generic type, ko, ek, SPECIFIC, shape, tak, RESTRICT, karta, hai
- Constraints, se, generic, functions, ke, andar, SAFELY, properties, access, ki, ja, sakti, hain
- keyof, ke, saath, combine, hoke, ADVANCED, patterns, banaте, hain
keyof, operator, se, EK, generic, TYPE, ki, PROPERTY, keys, ko, CONSTRAINT, ki, tarah, USE, kiya, ja, sakta hai — jaise, function getProperty<T, K extends keyof T>(obj: T, key: K), SAFE, PROPERTY, ACCESS, ke, liye.
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { name: "Aarav", age: 25 };
getProperty(user, "name"); // OK
// getProperty(user, "invalid"); // ERRORConstraints, MULTIPLE, interfaces, ki, INTERSECTION, ke, saath, DEFINE, ki, ja, sakti, HAIN — jaise, <T extends HasName & HasAge>, EK, TYPE, ko, DONO, properties, RAKHNE, ke, liye, FORCE, karta hai.