टाइपस्क्रिप्ट उन्नत प्रकारों को उदाहरणों के साथ समझाया गया

टाइपस्क्रिप्ट कई उन्नत प्रकार प्रदान करता है जो बुनियादी प्रकारों से परे जाते हैं, जिससे अधिक लचीले और शक्तिशाली प्रकार सिस्टम की अनुमति मिलती है। ये उन्नत प्रकार प्रकार की बाधाओं को परिभाषित करने और लागू करने के अतिरिक्त तरीके प्रदान करके मजबूत एप्लिकेशन बनाने में मदद करते हैं। यह लेख उदाहरणों के साथ इनमें से कुछ उन्नत प्रकारों का पता लगाता है।

संघ के प्रकार

यूनियन प्रकार एक चर को कई प्रकारों में से एक होने की अनुमति देते हैं। यह तब उपयोगी हो सकता है जब कोई मान कई प्रकार का हो सकता है लेकिन उसे उसके वास्तविक प्रकार के आधार पर उचित तरीके से संभाला जाना चाहिए।

// Union type example

function formatValue(value: string | number): string {
  if (typeof value === 'string') {
    return `String: ${value}`;
  } else {
    return `Number: ${value.toFixed(2)}`;
  }
}

console.log(formatValue("Hello"));
console.log(formatValue(123.456));

इस उदाहरण में, `formatValue` फ़ंक्शन या तो एक स्ट्रिंग या एक संख्या स्वीकार करता है और मान को तदनुसार स्वरूपित करता है।

चौराहे के प्रकार

इंटरसेक्शन प्रकार कई प्रकारों को एक में मिलाते हैं। इंटरसेक्शन प्रकार की एक वस्तु में संयुक्त प्रकारों के सभी गुण होंगे। यह कई प्रकारों को एक साथ संयोजित करने के लिए उपयोगी है।

// Intersection type example

interface Person {
  name: string;
  age: number;
}

interface Contact {
  email: string;
  phone: string;
}

type Employee = Person & Contact;

const employee: Employee = {
  name: "John Doe",
  age: 30,
  email: "[email protected]",
  phone: "123-456-7890"
};

console.log(employee);

यहां, `कर्मचारी` प्रकार `व्यक्ति` और `संपर्क` का प्रतिच्छेद है, जिसका अर्थ है कि इसमें दोनों इंटरफेस के गुण शामिल हैं।

शाब्दिक प्रकार

लिटरल प्रकार सटीक मान निर्दिष्ट करते हैं जो एक चर धारण कर सकता है। यह सुनिश्चित करने के लिए विशेष रूप से उपयोगी हो सकता है कि केवल कुछ विशिष्ट मानों की ही अनुमति है।

// Literal type example

type Direction = "up" | "down" | "left" | "right";

function move(direction: Direction): void {
  console.log(`Moving ${direction}`);
}

move("up");    // Valid
move("down");  // Valid
// move("side"); // Error: Argument of type '"side"' is not assignable to parameter of type 'Direction'.

यहां `Direction` प्रकार को चार विशिष्ट स्ट्रिंग मानों तक सीमित किया गया है, जिससे यह सुनिश्चित होता है कि `move` फ़ंक्शन में केवल इन दिशाओं का ही उपयोग किया जा सकता है।

टपल प्रकार

टपल प्रकार एक निश्चित संख्या में तत्वों वाली सरणी का प्रतिनिधित्व करते हैं, जहाँ प्रत्येक तत्व का एक अलग प्रकार हो सकता है। टपल विषम वस्तुओं के निश्चित आकार के संग्रह का प्रतिनिधित्व करने के लिए उपयोगी होते हैं।

// Tuple type example

let user: [string, number] = ["Alice", 30];

console.log(user[0]); // "Alice"
console.log(user[1]); // 30

// user = [30, "Alice"]; // Error: Type 'number' is not assignable to type 'string'.

`user` टपल को एक स्ट्रिंग के बाद एक संख्या द्वारा परिभाषित किया जाता है, और इस संरचना को बनाए रखा जाना चाहिए।

सशर्त प्रकार

सशर्त प्रकार शर्तों के आधार पर प्रकारों को निर्धारित करने की अनुमति देते हैं। वे किसी शर्त के आधार पर एक या दूसरे प्रकार का चयन करने का एक तरीका प्रदान करते हैं।

// Conditional type example

type IsString = T extends string ? "Yes" : "No";

type Test1 = IsString;  // "Yes"
type Test2 = IsString;  // "No"

इस उदाहरण में, `IsString` प्रकार जाँचता है कि क्या `T` प्रकार एक स्ट्रिंग है। यदि यह है तो यह `"Yes"` लौटाता है और अन्यथा `"No"` लौटाता है।

मैप किए गए प्रकार

मैप किए गए प्रकार मौजूदा प्रकार के गुणों को बदलकर नए प्रकार बनाने की अनुमति देते हैं। यह मौजूदा प्रकारों को संशोधित या विस्तारित करने के लिए उपयोगी है।

// Mapped type example

type ReadonlyPerson = {
  readonly [K in keyof Person]: Person[K];
};

const readonlyPerson: ReadonlyPerson = {
  name: "Alice",
  age: 30
};

// readonlyPerson.age = 31; // Error: Cannot assign to 'age' because it is a read-only property.

`ReadonlyPerson` प्रकार, `Person` प्रकार को उसके सभी गुणों को केवल-पठन योग्य बनाकर रूपांतरित कर देता है।

निष्कर्ष

टाइपस्क्रिप्ट के उन्नत प्रकार जटिल प्रकार की आवश्यकताओं को परिभाषित करने और प्रबंधित करने के लिए शक्तिशाली उपकरण प्रदान करते हैं। यूनियन, इंटरसेक्शन, लिटरल, टपल, कंडीशनल और मैप किए गए प्रकारों का उपयोग करके, डेवलपर्स अधिक मजबूत और रखरखाव योग्य एप्लिकेशन बना सकते हैं। इन प्रकारों को प्रभावी ढंग से समझना और लागू करना टाइपस्क्रिप्ट कोड की प्रकार सुरक्षा और लचीलेपन को काफी हद तक बढ़ा सकता है।

लिंक
TypeScript