इफेक्ट-टीएस विकल्प और किसी भी प्रकार को संभालने के लिए शक्तिशाली उपकरण प्रदान करता है। इस लेख में, हम लाइब्रेरी के उपयोगिता कार्यों का उपयोग करके इन प्रकारों को परिवर्तित करने और हेरफेर करने के विभिन्न तरीकों का पता लगाएंगे।
O.getRight फ़ंक्शन त्रुटि को हटाते हुए, किसी एक को एक विकल्प में बदल देता है। यदि इनमें से कोई भी सही है, तो यह O.some(मान) लौटाता है, अन्यथा यह O.none लौटाता है।
import { Option as O, Either as E, pipe } from 'effect'; function conversions_ex01() { const eitherRight = E.right('ok'); // Create an Either containing the value 'ok' const eitherLeft = E.left('error'); // Create an Either representing an error console.log(O.getRight(eitherRight)); // Output: Some('ok') console.log(O.getRight(eitherLeft)); // Output: None }
O.getLeft फ़ंक्शन मान को हटाते हुए, किसी एक को एक विकल्प में बदल देता है। यदि इनमें से कोई भी बायां है, तो यह O.some (त्रुटि) लौटाता है, अन्यथा यह O.none लौटाता है।
import { Option as O, Either as E, pipe } from 'effect'; function conversions_ex02() { const eitherRight = E.right('ok'); // Create an Either containing the value 'ok' const eitherLeft = E.left('error'); // Create an Either representing an error console.log(O.getLeft(eitherRight)); // Output: None console.log(O.getLeft(eitherLeft)); // Output: Some('error') }
O.getOrElse फ़ंक्शन विकल्प के अंदर मान लौटाता है यदि यह कुछ है, अन्यथा, यह प्रदान किया गया डिफ़ॉल्ट मान लौटाता है।
import { Option as O, pipe } from 'effect'; function conversions_ex03() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log( pipe( some, O.getOrElse(() => 'default') ) ); // Output: 1 (since some contains 1) console.log( pipe( none, O.getOrElse(() => 'default') ) ); // Output: 'default' (since none is None) }
O.orElse फ़ंक्शन दिए गए विकल्प को लौटाता है कि यदि self कोई नहीं है, अन्यथा यह self लौटाता है। यह फ़ंक्शन उन विकल्पों की श्रृंखला बनाने की अनुमति देता है जहां फ़ॉलबैक एक अन्य विकल्प है।
import { Option as O, pipe } from 'effect'; function conversions_ex04() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log( pipe( some1, O.orElse(() => some2) ) ); // Output: Some(1) (since some1 contains 1) console.log( pipe( none, O.orElse(() => some2) ) ); // Output: Some(2) (since none is None and fallback is some2) }
यदि सेल्फ कोई नहीं है तो O.orElseSome फ़ंक्शन कुछ में लिपटे हुए दिए गए डिफ़ॉल्ट मान को लौटाता है, अन्यथा यह सेल्फ को लौटाता है। यह फ़ंक्शन उन विकल्पों की श्रृंखला बनाने की अनुमति देता है जहां फ़ॉलबैक कुछ में लिपटा हुआ एक डिफ़ॉल्ट मान है।
import { Option as O, pipe } from 'effect'; function conversions_ex05() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log( pipe( some, O.orElseSome(() => 2) ) ); // Output: Some(1) (since some contains 1) console.log( pipe( none, O.orElseSome(() => 2) ) ); // Output: Some(2) (since none is None and fallback is 2) }
O.orElseEither फ़ंक्शन एक विकल्प देता है जिसमें बायां फ़ॉलबैक विकल्प से होता है और दायां मूल विकल्प से होता है। यह फ़ंक्शन विकल्पों की श्रृंखला बनाने की अनुमति देता है जहां फ़ॉलबैक अधिक संदर्भ के लिए या तो प्रदान करता है।
import { Option as O, Either as E, pipe } from 'effect'; function conversions_ex06() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log( pipe( some1, O.orElseEither(() => some2) ) ); // Output: Some(Right(1)) (since some1 contains 1) console.log( pipe( none, O.orElseEither(() => some2) ) ); // Output: Some(Left(2)) (since none is None and fallback is some2) }
O.firstSomeOf फ़ंक्शन विकल्पों के पुनरावर्तनीय में पाए गए पहले कुछ को लौटाता है। यदि सभी कुछ नहीं हैं, तो यह कोई नहीं लौटाता है।
import { Option as O } from 'effect'; function conversions_ex07() { const options = [O.none(), O.some(1), O.some(2)]; // Create an iterable of Options const optionsAllNone = [O.none(), O.none()]; // Create an iterable of None Options console.log(O.firstSomeOf(options)); // Output: Some(1) (since the first non-None Option is Some(1)) console.log(O.firstSomeOf(optionsAllNone)); // Output: None (since all Options are None) }
O.toRefinement फ़ंक्शन एक विकल्प को टाइप गार्ड में लौटाने वाले फ़ंक्शन को परिवर्तित करता है, जिससे अधिक विशिष्ट प्रकार की जांच की अनुमति मिलती है।
import { Option as O } from 'effect'; function conversions_ex08() { const isPositive = (n: number): O.Option=> n > 0 ? O.some(n) : O.none(); const isPositiveRefinement = O.toRefinement(isPositive); console.log(isPositiveRefinement(1)); // Output: true (since 1 is positive) console.log(isPositiveRefinement(-1)); // Output: false (since -1 is not positive) }
O.toArray फ़ंक्शन एक विकल्प को एक सरणी में परिवर्तित करता है। यदि विकल्प कुछ है, तो यह मान वाली एक सरणी लौटाता है; यदि यह कोई नहीं है, तो यह एक खाली सरणी लौटाता है।
import { Option as O } from 'effect'; function conversions_ex09() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(O.toArray(some)); // Output: [1] (since some contains 1) console.log(O.toArray(none)); // Output: [] (since none is None) }
इस लेख में, हमने विकल्प और किसी भी प्रकार को परिवर्तित करने और हेरफेर करने के लिए इफेक्ट-टीएस द्वारा प्रदान किए गए विभिन्न कार्यों का पता लगाया है। ये फ़ंक्शन आपके कोड के लचीलेपन और अभिव्यक्ति को बढ़ाते हैं, जिससे आप वैकल्पिक और त्रुटि-प्रवण मानों को अधिक सुंदर ढंग से संभाल सकते हैं। चाहे आपको किसी एक को एक विकल्प में बदलने की आवश्यकता हो, एकाधिक विकल्प मानों को श्रृंखलाबद्ध करने की, या प्रकार-सुरक्षित संचालन करने की, इफ़ेक्ट-टीएस इन कार्यों को सरल बनाने के लिए उपकरणों का एक मजबूत सेट प्रदान करता है। इन उपयोगिताओं का लाभ उठाकर, आप स्वच्छ, अधिक रखरखाव योग्य कोड लिख सकते हैं जो मूल्यों की उपस्थिति या अनुपस्थिति को प्रभावी ढंग से संभालता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3