उदाहरण के साथ टाइपस्क्रिप्ट जेनरिक
टाइपस्क्रिप्ट जेनरिक एक शक्तिशाली विशेषता है जो आपको पुनः उपयोग करने योग्य और प्रकार-सुरक्षित घटक बनाने की अनुमति देती है। जेनरिक मजबूत प्रकार सुरक्षा बनाए रखते हुए विभिन्न प्रकारों के साथ काम करने वाले वर्ग, फ़ंक्शन और इंटरफ़ेस बनाने का एक तरीका प्रदान करते हैं। यह लेख आपको जेनरिक से परिचित कराएगा और व्यावहारिक उदाहरणों के साथ उनका उपयोग करने का तरीका दिखाएगा।
जेनरिक को समझना
जेनेरिक्स आपको घटक को उस प्रकार के लिए प्लेसहोल्डर के साथ परिभाषित करने में सक्षम बनाता है जिस पर वह काम करता है। एक ठोस प्रकार निर्दिष्ट करने के बजाय, आप एक जेनेरिक प्रकार पैरामीटर का उपयोग करते हैं जिसे घटक का उपयोग करते समय किसी भी प्रकार से बदला जा सकता है।
मूल वाक्यविन्यास
जेनेरिक प्रकार को परिभाषित करने के लिए मूल सिंटैक्स एक प्रकार पैरामीटर नाम के साथ कोण कोष्ठक <>
का उपयोग करना है। यहाँ एक सरल उदाहरण दिया गया है:
function identity(value: T): T {
return value;
}
const stringIdentity = identity("Hello"); // string
const numberIdentity = identity(123); // number
इस उदाहरण में, identity
एक सामान्य फ़ंक्शन है जो T
प्रकार का पैरामीटर value
लेता है और उसी प्रकार का मान लौटाता है। फ़ंक्शन को कॉल किए जाने पर प्रकार पैरामीटर T
को वास्तविक प्रकार से बदल दिया जाता है।
क्लासों के साथ जेनरिक
जेनरिक का उपयोग क्लास के साथ लचीले और पुनः उपयोग योग्य डेटा संरचनाएँ बनाने के लिए भी किया जा सकता है। यहाँ एक जेनेरिक क्लास का उदाहरण दिया गया है:
class Box {
private value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
const stringBox = new Box("TypeScript");
console.log(stringBox.getValue()); // Output: TypeScript
const numberBox = new Box(42);
console.log(numberBox.getValue()); // Output: 42
इस उदाहरण में, Box
क्लास को एक सामान्य प्रकार पैरामीटर T
के साथ परिभाषित किया गया है। इस क्लास में T
प्रकार की एक निजी प्रॉपर्टी value
और एक विधि getValue
है जो T
प्रकार का मान लौटाती है।
इंटरफेस के साथ जेनरिक
जेनरिक का उपयोग इंटरफेस के साथ लचीले और प्रकार-सुरक्षित इंटरफेस बनाने के लिए किया जा सकता है। यहाँ एक उदाहरण दिया गया है:
interface Pair<T, U> {
first: T;
second: U;
}
const pair: Pair<string, number> = {
first: "Age",
second: 30
};
console.log(pair.first); // Output: Age
console.log(pair.second); // Output: 30
इस उदाहरण में, Pair
इंटरफ़ेस को दो सामान्य प्रकार पैरामीटर T
और U
के साथ परिभाषित किया गया है। इंटरफ़ेस क्रमशः T
और U
प्रकार वाले मानों की एक जोड़ी का प्रतिनिधित्व करता है।
फ़ंक्शन में जेनरिक
जेनरिक का उपयोग फ़ंक्शन में कई प्रकारों को संभालने के लिए किया जा सकता है, जबकि टाइप सुरक्षा को बनाए रखा जा सकता है। यहाँ एक जेनेरिक फ़ंक्शन का उदाहरण दिया गया है जो एरे के साथ काम करता है:
function reverseArray(items: T[]): T[] {
return items.reverse();
}
const reversedStringArray = reverseArray(["one", "two", "three"]);
console.log(reversedStringArray); // Output: ["three", "two", "one"]
const reversedNumberArray = reverseArray([1, 2, 3]);
console.log(reversedNumberArray); // Output: [3, 2, 1]
इस उदाहरण में, reverseArray
फ़ंक्शन T
प्रकार की एक सरणी लेता है और उसी प्रकार की एक उलटी सरणी लौटाता है। प्रकार पैरामीटर T
यह सुनिश्चित करता है कि फ़ंक्शन प्रकार सुरक्षा बनाए रखते हुए किसी भी प्रकार की सरणियों के साथ काम करता है।
जेनेरिक्स पर प्रतिबंध
कभी-कभी आपको जेनेरिक प्रकार पैरामीटर पर प्रतिबंध लगाने की आवश्यकता हो सकती है ताकि यह सुनिश्चित हो सके कि इसमें कुछ खास गुण हैं। यह प्रतिबंधों का उपयोग करके किया जाता है:
function logLength(item: T): void {
console.log(item.length);
}
logLength("Hello, TypeScript"); // Output: 16
logLength([1, 2, 3]); // Output: 3
// logLength(123); // Error: number does not have a length property
इस उदाहरण में, logLength
फ़ंक्शन उन प्रकारों तक सीमित है जिनमें length
गुण है। यह फ़ंक्शन को स्ट्रिंग और ऐरे स्वीकार करने की अनुमति देता है, लेकिन length
गुण के बिना संख्या या अन्य प्रकार स्वीकार नहीं करता है।
निष्कर्ष
टाइपस्क्रिप्ट में जेनरिक मजबूत प्रकार की सुरक्षा बनाए रखते हुए लचीले और पुन: प्रयोज्य घटक बनाने का एक शक्तिशाली तरीका प्रदान करते हैं। जेनरिक को समझकर और उसका उपयोग करके, आप अधिक जेनेरिक और अनुकूलनीय कोड लिख सकते हैं, जिससे आपके टाइपस्क्रिप्ट अनुप्रयोगों की समग्र गुणवत्ता और रखरखाव में सुधार होगा।
अपनी परियोजनाओं में जेनेरिक्स के साथ प्रयोग करके उनके लाभों को देखें और अपने टाइपस्क्रिप्ट प्रोग्रामिंग कौशल को बढ़ाएं।