Type Guards & Narrowing
typeof, operator, se, PRIMITIVE, types, (string, number, boolean) narrow, kiye, ja, sakte, HAIN. instanceof, se, CLASS, INSTANCES, ko, narrow, kiya, ja, sakta hai. in, operator, se, CHECK, kiya, ja, sakta hai, ki, EK, OBJECT, mein, EK, SPECIFIC, PROPERTY, EXIST, karti, hai.
Custom, type, GUARDS, (value is Type, SYNTAX, ke, saath) EK, FUNCTION, banaya, ja, sakta hai, JO, COMPLEX, narrowing, LOGIC, ko, REUSABLE, banata hai.
function process(value: string | number) {
if (typeof value === "string") {
return value.toUpperCase(); // yaha, TypeScript, JAANTA, hai, value, string, hai
}
return value.toFixed(2); // yaha, number, hai
}
// Custom type guard:
interface Cat { meow(): void; }
function isCat(animal: any): animal is Cat {
return typeof animal.meow === "function";
}- typeof/instanceof/in = built-in, type, narrowing, operators
- Union types, ko, SPECIFIC, types, tak, narrow, karne, ke, liye, USE, hote, HAIN
- Custom, type, guards, (value is Type) reusable, narrowing, logic, banaте, hain
if (value), CHECK, karta hai, ki, VALUE, TRUTHY, hai — YE, null/undefined, ko, ELIMINATE, karta hai, LEKIN, EMPTY, STRING, YA, 0, ko, bhi, FALSY, treat, karta hai, JO, KABHI-KABHI, UNINTENDED, effects, de, sakta hai.
function process(value: string | null) {
if (value) {
value.toUpperCase(); // narrowed, string, hai — null, ELIMINATED
}
}asserts, keyword, se, EK, function, banaya, ja, sakta hai, JO, THROW, karta hai, AGAR, EK, CONDITION, false, hai — TypeScript, ISE, EK, "TYPE, ASSERTION" ki, tarah, TREAT, karta hai, function, CALL, ke, BAAD, ke, CODE, mein.