If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
TypeScript के powerful features में से एक है "Generics
". Generics हमें एक flexible तरीके से functions, classes, और interfaces लिखने कि facility देते हैं।
Generic function
s का use करके हम ऐसे functions लिख सकते हैं जो multiple types के साथ काम कर सकें, बिना code को बार-बार लिखे ।
इस article में हम TypeScript Generic Functions का समझने वाले हैं, कि कैसे आपके code को ज़्यादा reusable और maintainable बना सकती हैं।
Generics TypeScript का एक concept है जिसमे आप एक function को लिखते वक्त type specify नहीं करते, बल्कि function को call करते वक्त type define किया जाता है।
इससे function different-different types के साथ काम कर सकता है, बिना code duplicate किये।
इसका advantange यह है कि आप एक ही code लिखते हैं, और multiple types
के लिए use कर सकते हैं , Generics dynamic और type-safe code लिखने का एक तरीका है।
function identity<T>(value: T): T {
return value;
}
यहां T
एक generic type है, जो function को call करते वक्त set होता है , इस function का काम है जो भी value pass कि जाये, उसको वापस return करना।
चाहे वो string, number या boolean हो, function हर type के लिए काम करेगा।
console.log(identity<string>("Hello World")); // Output: Hello World console.log(identity<number>(100)); // Output: 100
यहां अगर ध्यान दोगे तो हमने identity()
function call करते time ये बताया है कि किस type की value pass कर रहे हैं।
●●●
Generic functions का basic syntax simple है। आप function name के बाद angle brackets <T>
का use करते हैं, जिसमे T
एक placeholder
होता है।
जब function को call किया जाता है, तब आप type को specify करते हैं।
Example
function logItems<T>(items: T[]): void {
items.forEach(item => console.log(item));
}
इस function में हम एक array
को log कर रहे हैं , T[]
का मतलब है कि यह function किसी भी type के array को handle कर सकता है।
logItems<string>(["apple", "banana", "mango"]);
// Output:
// apple
// banana
// mango
logItems<number>([1, 2, 3, 4]);
// Output:
// 1
// 2
// 3
// 4
●●●
Generics में आप एक से ज़्यादा type parameters भी define कर सकते हो। यह उस situations में helpful होता है जब आपको different types के input handle करने होते हैं।
function mergeObjects<T, U>(obj1: T, obj2: U): T & U {
return { ...obj1, ...obj2 };
}
यह function दो अलग-अलग objects को merge
करके एक single object बनाता है।
Usage
const person = mergeObjects({ name: "John" }, { age: 30 });
console.log(person);
// Output: { name: 'John', age: 30 }
●●●
कभी-कभी आपको generic types पर कुछ constraints
लगाने कि जरूरत पड़ती है, ताकि सिर्फ कुछ specific types ही allow हूँ।
इसके लिए आप extends
keyword का use कर सकते हो।
Example
function getLength<T extends { length: number }>(item: T): number {
return item.length;
}
यह function सिर्फ उन objects को allow करेगा जो length
property रखते हैं, जैसे कि arrays और strings.
console.log(getLength([1, 2, 3])); // Output: 3
console.log(getLength("Hello")); // Output: 5
●●●
आप generics को interfaces
के साथ भी use कर सकते हैं, जिससे आपका code और ज़्यादा flexible बन जाता है।
Example
interface KeyValuePair<T, U> {
key: T;
value: U;
}
const kv: KeyValuePair<string, number> = { key: "age", value: 30 };
console.log(kv); // Output: { key: 'age', value: 30 }
यह generic interface KeyValuePair()
दो types (T और U) के साथ काम करता है, एक key और एक value के लिए।
Reusability : आपको बार-बार same function लिखने कि जरूरत नहीं पड़ती, बस एक generic function लिखना होता है।
Type Safety : आपके code में किस type के data का काम हो रहा है, यह TypeScript check करता है और errors को avoid करता है।
Flexibility : Generics आपके code को flexible और adaptable बनाते हैं, जिससे आप multiple types के साथ काम कर सकते हैं।
Code Reduction : Generics का use करके आप code को reduce कर सकते हो, जिससे code ज़्यादा readable और maintainable हो जाता है।
●●●
Generics TypeScript का एक powerful feature है जो आपके code को ज़्यादा flexible, reusable, और type-safe बनाता है।
Functions में generics का use करके आप multiple types को handle कर सकते हो बिना code duplication के।
इस topic में हमने देखा कि generics का basic syntax क्या है, कैसे function overloading
और constraints के साथ काम किया जाता है, और उनका real-world example.