TypeScript में प्रतिच्छेद प्रकार
यह लेख TypeScript में प्रतिच्छेद प्रकारों की व्याख्या करता है।
YouTube Video
TypeScript में प्रतिच्छेद प्रकार
TypeScript में, प्रतिच्छेद प्रकार एक नया प्रकार बनाने के लिए कई प्रकारों को संयोजित करने का तरीका हैं।
प्रतिच्छेद प्रकार क्या हैं?
प्रतिच्छेद प्रकार आपको कई प्रकारों को संयोजित करने की अनुमति देते हैं ताकि उनके सभी गुणों के साथ एक नया प्रकार परिभाषित किया जा सके। प्रतिच्छेद प्रकारों को &
प्रतीक का उपयोग करके परिभाषित किया जाता है और प्रत्येक घटक प्रकार से सभी गुणों की आवश्यकता होती है।
उदाहरण:
1type A = { name: string };
2type B = { age: number };
3
4type C = A & B;
5
6const person: C = {
7 name: "John Doe",
8 age: 30
9};
इस कोड में, type C = A & B
को परिभाषित करने पर, C
प्रकार एक वस्तु प्रकार बन जाता है जिसमें name
(स्ट्रिंग प्रकार) और age
(संख्या प्रकार) गुण होते हैं।
प्रतिच्छेद प्रकारों के लाभ
प्रतिच्छेद प्रकारों का उपयोग करके, आप मौजूदा प्रकारों को पुन: उपयोग कर सकते हैं और अधिक लचीले और समग्र प्रकार को परिभाषित कर सकते हैं। यह आपके कोड की रखरखाव और विस्तारशीलता को बढ़ाता है। इसके अलावा, प्रतिच्छेद प्रकार एक साथ कई अलग-अलग प्रकारों की बाधाओं को लागू कर सकते हैं, इस प्रकार प्रकार की सुरक्षा को बढ़ाते हैं।
लाभ:
- पुन: उपयोगिता: कई प्रकारों को संयोजित करके, आप पुनरावृत्ति परिभाषाओं को कम कर सकते हैं और मौजूदा प्रकारों का पुन: उपयोग कर सकते हैं।
- प्रकार सुरक्षा: प्रतिच्छेद प्रकार केवल उन वस्तुओं की अनुमति देकर प्रकार जाँच को बढ़ाते हैं जो कई प्रकारों की शर्तों को पूरा करती हैं।
प्रतिच्छेद प्रकारों के उपयोग के मामले
वस्तुओं या इंटरफेस का विस्तार करते समय प्रतिच्छेद प्रकार अत्यधिक उपयोगी होते हैं। विशेष रूप से, यह तब उपयोगी होता है जब आप कई गुणों वाली वस्तुओं का प्रतिनिधित्व करना चाहते हैं।
उपयोग मामला 1: कई इंटरफेस वाली वस्तुएँ
1interface Drivable {
2 drive(): void;
3}
4
5interface Flyable {
6 fly(): void;
7}
8
9type Vehicle = Drivable & Flyable;
10
11const car: Vehicle = {
12 drive() {
13 console.log("Driving on the road");
14 },
15 fly() {
16 console.log("Flying in the sky");
17 }
18};
19
20car.drive(); // "Driving on the road"
21car.fly(); // "Flying in the sky"
इस उदाहरण में, Vehicle
प्रकार को Drivable
और Flyable
को संयोजित करते हुए एक प्रतिच्छेद प्रकार के रूप में परिभाषित किया गया है। Vehicle
प्रकार की वस्तु को दोनों drive()
और fly()
तरीकों को कार्यान्वित करना चाहिए।
उपयोग मामला 2: कक्षाएँ और प्रतिच्छेद प्रकारों को संयोजित करना
कक्षाएँ और प्रतिच्छेद प्रकारों को संयोजित करके, कई इंटरफेस के गुणों वाली वस्तुएँ बनाना संभव है।
1interface Person {
2 name: string;
3}
4
5interface Employee {
6 employeeId: number;
7}
8
9type PersonEmployee = Person & Employee;
10
11class CompanyWorker implements PersonEmployee {
12 constructor(public name: string, public employeeId: number) {}
13
14 getDetails() {
15 return `${this.name}, Employee ID: ${this.employeeId}`;
16 }
17}
18
19const worker = new CompanyWorker("Alice", 123);
20console.log(worker.getDetails()); // "Alice, Employee ID: 123"
यहाँ, हम Person
और Employee
का प्रतिच्छेद प्रकार PersonEmployee
का उपयोग करते हैं ताकि CompanyWorker
कक्षा दोनों के गुणों को प्राप्त कर सके।
इंटरसेक्शन प्रकारों के साथ ध्यान देने योग्य बिंदु
इंटरसेक्शन प्रकारों का उपयोग करते समय एक महत्वपूर्ण बात यह है कि गुणों के टकराव की संभावना पर ध्यान दें। यदि समान नाम वाले गुणों के अलग-अलग प्रकारों में विभिन्न प्रकार के एनोटेशन हैं, तो एक त्रुटि हो सकती है।
सावधानी का उदाहरण:
1type A = { id: number };
2type B = { id: string };
3
4type C = A & B;
5
6// Error: Type 'number' and 'string' are not compatible
7const obj: C = {
8 id: 1
9};
इस उदाहरण में, A
और B
की id
गुण टकराती हैं, जिससे C
प्रकार के साथ ऑब्जेक्ट को परिभाषित करते समय त्रुटि होती है। ऐसे मामलों में, गुणों के टकराव से बचने के लिए डिज़ाइन समीक्षा आवश्यक है।
इंटरसेक्शन प्रकारों के लिए प्रकार एनोटेशन के साथ कोड का उदाहरण
अंत में, यहां एक वास्तविक कोड उदाहरण दिया गया है जिसमें प्रकार एनोटेशन शामिल हैं।
उदाहरण 1: ऑब्जेक्ट विवरण प्रदर्शित करना
1type ContactInfo = { phone: string; email: string };
2type Address = { city: string; postalCode: string };
3
4type PersonDetails = ContactInfo & Address;
5
6const details: PersonDetails = {
7 phone: "123-4567",
8 email: "example@mail.com",
9 city: "New York",
10 postalCode: "10001"
11};
12
13console.log(details);
उदाहरण 2: अतिरिक्त गुणों वाला ऑब्जेक्ट
1interface BasicInfo {
2 name: string;
3 age: number;
4}
5
6interface WorkInfo {
7 company: string;
8 position: string;
9}
10
11type FullInfo = BasicInfo & WorkInfo;
12
13const employee: FullInfo = {
14 name: "Bob",
15 age: 28,
16 company: "Tech Corp",
17 position: "Engineer"
18};
19
20console.log(`${employee.name} is a ${employee.position} at ${employee.company}`);
निष्कर्ष
टाइपस्क्रिप्ट के इंटरसेक्शन प्रकार एक नई प्रकार में कई प्रकारों को संयोजित करने के लिए एक शक्तिशाली फ़ीचर हैं। यह कोड पुन: उपयोग और सुरक्षा को बढ़ाता है, जटिल प्रकार की परिभाषाओं को सक्षम बनाता है। डिज़ाइन की लचीलापन का प्रभावी ढंग से उपयोग करते हुए और प्रकार टकरावों से सावधान रहते हुए, आप मजबूत और उच्च पठनीय कोड प्राप्त कर सकते हैं।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।