टाइपस्क्रिप्ट में नलिश कोलेसिंग ऑपरेटर
इस लेख में, हम टाइपस्क्रिप्ट में नलिश कोलेसिंग ऑपरेटर को समझाएंगे।
YouTube Video
टाइपस्क्रिप्ट में नलिश कोलेसिंग ऑपरेटर
टाइपस्क्रिप्ट में नलिश कोलेसिंग ऑपरेटर (??
) जावास्क्रिप्ट के शॉर्ट-सर्किट मूल्यांकन के समान है, लेकिन इसे विशेष रूप से तब उपयोग किया जाता है जब बाईं ओर का मान केवल null
या undefined
हो। यह ऑपरेटर आपको यह जांचने में आसानी प्रदान करता है कि कोई मान null
या undefined
है और आवश्यकता पड़ने पर डिफ़ॉल्ट मान सेट करता है।
नलिश कोलेसिंग ऑपरेटर (??
) केवल तब दायीं ओर का मान लौटाता है जब बाईं ओर का मान null
या undefined
हो। यह false
, खाली स्ट्रिंग, या नंबर 0
जैसी वैल्यू को उनकी वास्तविक स्थिति में जांचने की अनुमति देता है। यह पारंपरिक लॉजिकल OR ऑपरेटर (||
) से एक बड़ा अंतर है। यह ऑपरेटर टाइपस्क्रिप्ट 3.7 में पेश किया गया था।
मूल वाक्यविन्यास
मूल सिंटैक्स इस प्रकार है:।
1let result = value ?? defaultValue;
value
वह लक्ष्य है जिसेnull
याundefined
के लिए जांचा जा रहा है।defaultValue
वह वैल्यू है जो तब लौटाई जाती है जबvalue
null
याundefined
हो।
उदाहरण उपयोग
1function getUserName(userName: string | null | undefined): string {
2 return userName ?? "Default User";
3}
4
5console.log(getUserName("Alice")); // Output: Alice
6console.log(getUserName(null)); // Output: Default User
7console.log(getUserName(undefined)); // Output: Default User
यहां, फ़ंक्शन getUserName
, userName
के null
या undefined
होने पर "Default User"
लौटाता है, अन्यथा यह userName
का मान लौटाता है।
लॉजिकल OR ऑपरेटर से अंतर
नलिश कोलेसिंग ऑपरेटर और लॉजिकल OR ऑपरेटर के बीच महत्वपूर्ण अंतर है। लॉजिकल OR ऑपरेटर false
, 0
, और ""
(खाली स्ट्रिंग) जैसे मानों को "फाल्सी" के रूप में मानता है, जैसे कि null
और undefined
। वहीं दूसरी ओर, नलिश कोलेसिंग ऑपरेटर केवल null
और undefined
का उपयोग बैकअप के लिए करता है।
लॉजिकल OR ऑपरेटर का उदाहरण
1function getUserAge(age: number | null | undefined): number {
2 return age || 18; // `0` also applies the default value
3}
4
5console.log(getUserAge(25)); // Output: 25
6console.log(getUserAge(0)); // Output: 18
7console.log(getUserAge(null)); // Output: 18
- जैसा दिखाया गया है, लॉजिकल OR ऑपरेटर डिफॉल्ट वैल्यू
18
वापस करता है, भले ही वैल्यू0
हो।
नलिश कोएलसिंग ऑपरेटर का उदाहरण
1function getUserAge(age: number | null | undefined): number {
2 return age ?? 18; // `0` does not apply the default value
3}
4
5console.log(getUserAge(25)); // Output: 25
6console.log(getUserAge(0)); // Output: 0
7console.log(getUserAge(null)); // Output: 18
-
दूसरी ओर, नलिश कोलेसिंग ऑपरेटर मूल वैल्यू लौटाता है, भले ही वह
0
हो। -
लॉजिकल OR ऑपरेटर और नलिश कोलेसिंग ऑपरेटर के बीच चयन इस पर निर्भर करता है कि
0
या खाली स्ट्रिंग स्वीकार्य है या नहीं। उदाहरण के लिए, यदि आप उपयोगकर्ता की उम्र0
रखना चाहते हैं, तो आपको नलिश कोएलसिंग ऑपरेटर का उपयोग करना होगा।
प्रकारों के साथ संयोजन
आप टाइपस्क्रिप्ट की टाइप सुरक्षा का उपयोग करके और नलिश कोलेसिंग ऑपरेटर के साथ इसे संयोजित करके अपने कोड की मजबूती बढ़ा सकते हैं। निम्नलिखित उदाहरण में, कुछ गुणों के null
या undefined
होने पर डिफ़ॉल्ट मान का उपयोग किया गया है।
1interface User {
2 name: string;
3 age?: number | null;
4}
5
6function displayUserInfo(user: User): string {
7 const userName: string = user.name;
8 const userAge: number = user.age ?? 18;
9 return `Name: ${userName}, Age: ${userAge}`;
10}
11
12const user1: User = { name: "John", age: null };
13const user2: User = { name: "Doe" };
14
15console.log(displayUserInfo(user1)); // Output: Name: John, Age: 18
16console.log(displayUserInfo(user2)); // Output: Name: Doe, Age: 18
User
इंटरफ़ेस में,age
प्रॉपर्टीnumber
,null
, याundefined
हो सकती है, इसलिए एक डिफ़ॉल्ट वैल्यू18
असाइन करने के लिए नलिश कोलेसिंग ऑपरेटर का उपयोग किया जाता है।- इस बीच,
name
प्रॉपर्टी केवलstring
को अनुमति देती है, इसलिए वैल्यू को जैसे का तैसा उपयोग किया जाता है।
सारांश
- नलिश कोएलसिंग ऑपरेटर केवल तब एक डिफ़ॉल्ट मान सेट करने में मदद करता है जब मान
null
याundefined
हो। पारंपरिक लॉजिकल OR ऑपरेटर के विपरीत, यहfalse
,0
, या खाली स्ट्रिंग को 'falsy' के रूप में नहीं मानता है, जिससे यह तब विशेष रूप से उपयोगी होता है जब आप इन वैल्यू को सुरक्षित रखना चाहते हैं। इसके अलावा, इसे TypeScript के टाइप सिस्टम के साथ संयोजित करने से अधिक मजबूत और पठनीय कोड बनाने की अनुमति मिलती है। - nullish coalescing ऑपरेटर का प्रभावी ढंग से उपयोग करके, आप डिफ़ॉल्ट मान सेट करने के लिए तर्क को संक्षेप में लिख सकते हैं और अनावश्यक
null
जांच को कम कर सकते हैं।
TypeScript में Nullish Coalescing असाइनमेंट ऑपरेटर
nullish coalescing असाइनमेंट ऑपरेटर (??=
) TypeScript में हाल ही में पेश किया गया एक नया ऑपरेटर है, जो केवल तभी मान असाइन करने का एक सुविधाजनक तरीका प्रदान करता है जब वेरिएबल null
या undefined
हो। यहां, हम समझाएंगे कि यह ऑपरेटर कैसे काम करता है, यह किन परिस्थितियों में प्रभावी होता है, और कोड के साथ उदाहरण प्रदान करेंगे।
Nullish Coalescing असाइनमेंट ऑपरेटर क्या है
नलिश कोएलसिंग असाइनमेंट ऑपरेटर, नलिश कोएलसिंग ऑपरेटर पर आधारित एक असाइनमेंट ऑपरेटर है। यह ऑपरेटर तब उपयोग में आता है जब वेरिएबल null
या undefined
हो, और इसे केवल नया मान असाइन करने के लिए उपयोग किया जाता है।
1let variable: string | null = null;
2variable ??= "Default Value"; // The variable is null,
3 // so the new value is assigned
4
5console.log(variable); // Output: "Default Value"
इस ऑपरेटर का उपयोग करके, आप "यदि वेरिएबल अनिर्धारित या null है तो असाइन करें" तर्क को अधिक संक्षेप में लिख सकते हैं।
पारंपरिक असाइनमेंट विधियों के साथ तुलना
नलिश कोएलसिंग असाइनमेंट ऑपरेटर के बिना, आपको वही व्यवहार प्राप्त करने के लिए if
स्टेटमेंट या टर्नरी ऑपरेटर का उपयोग करना पड़ेगा। आइए पारंपरिक असाइनमेंट विधियों के साथ तुलना करें।
पारंपरिक विधि
if
स्टेटमेंट का उपयोग करके, इसे इस प्रकार लिखा जा सकता है:।
1let variable: string | null | undefined = null;
2if (variable === null || variable === undefined) {
3 variable = "Default Value";
4}
5console.log(variable); // Output: "Default Value"
टर्नरी ऑपरेटर का उपयोग करने की विधि
वैकल्पिक रूप से, टर्नरी ऑपरेटर का उपयोग करके, इसे इस प्रकार लिखा जा सकता है:।
1let variable: string | null | undefined = undefined;
2variable = variable != null ? variable : "Default Value";
3// != null checks for both null and undefined
4// (intentional loose equality comparison)
5
6console.log(variable); // Output: "Default Value"
नलिश कोलेसिंग असाइनमेंट ऑपरेटर का उपयोग करके संक्षिप्त विधि।
दूसरी ओर, नलिश कोलेसिंग असाइनमेंट ऑपरेटर का उपयोग करके, इसे इस प्रकार लिखा जा सकता है:।
1let variable: string | null = null;
2variable ??= "Default Value";
3console.log(variable); // Output: "Default Value"
जैसा दिखाया गया है, नलिश कोलेसिंग असाइनमेंट ऑपरेटर अन्य असाइनमेंट विधियों की तुलना में बहुत सरल और पढ़ने में आसान है, जो कोड की स्पष्टता को बढ़ाता है।
??=
का उपयोग करने के विशिष्ट उदाहरण
नलिश कोएलसिंग असाइनमेंट ऑपरेटर विभिन्न परिदृश्यों में उपयोगी है, जैसे कि ऑब्जेक्ट प्रॉपर्टी को इनिशियलाइज़ करना और डिफ़ॉल्ट मान सेट करना। यहां कुछ विशिष्ट उदाहरण दिए गए हैं।
ऑब्जेक्ट गुणों का प्रारंभिककरण
1interface Config {
2 theme?: string;
3 language?: string;
4}
5
6let config: Config = {};
7config.theme ??= "light"; // Set the default "light" theme if none is specified
8config.language ??= "en"; // Set the default "en" language if none is specified
9
10console.log(config); // Output: { theme: "light", language: "en" }
ऐरे का प्रारंभिककरण
1let numbers: number[] | null = null;
2numbers ??= []; // Assign an empty array if numbers is null
3
4numbers.push(1);
5console.log(numbers); // Output: [1]
कार्यात्मक तर्कों के लिए डिफ़ॉल्ट मान सेट करना
1function greet(name?: string) {
2 name ??= "Guest"; // Set name to "Guest" if it is undefined or null
3 console.log(`Hello, ${name}!`);
4}
5
6greet(); // Output: "Hello, Guest!"
7greet("Alice"); // Output: "Hello, Alice!"
नोट्स और प्रतिबंध
नलिश कोएलसिंग असाइनमेंट ऑपरेटर बहुत उपयोगी है, लेकिन इसमें कुछ सावधानियां हैं।
केवल null
और undefined
को लक्षित किया जाता है।।
1let str: string | null = "";
2str ??= "Default";
3console.log(str); // Output: "" (remains an empty string)
4
5let num: number | undefined = 0;
6num ??= 100;
7console.log(num); // Output: 0 (remains 0)
- यह ऑपरेटर असाइनमेंट केवल तब करता है जब वैल्यू
null
याundefined
हो। उदाहरण के लिए, खाली स्ट्रिंग (""
),0
, याfalse
जैसी वैल्यू को लक्षित नहीं किया जाता है।
इसे अन्य ऑपरेटरों के साथ उपयोग करते समय सावधान रहें।।
1let value: string | null = null;
2
3// Targets not only "null" and "undefined" but also falsy values
4value ||= "Default";
5console.log(value); // Output: "Default"
6
7value = "";
8// An empty string is also targeted
9value ||= "Default";
10console.log(value); // Output: "Default"
11
12value = null;
13// Targets only null or undefined
14value ??= "Default";
15console.log(value); // Output: "Default"
- नलिश कोलेसिंग असाइनमेंट ऑपरेटर अन्य ऑपरेटरों के साथ उपयोग किए जाने पर अनचाहे परिणाम उत्पन्न कर सकता है। इसके और लॉजिकल OR असाइनमेंट ऑपरेटर के बीच का अंतर समझना विशेष रूप से महत्वपूर्ण है।
नमूना कोड (Sample Code)
1let config: { theme?: string; language?: string } = {};
2
3// Use Nullish Coalescing Assignment to set default values
4config.theme ??= "light";
5config.language ??= "en";
6
7console.log(config); // Output: { theme: "light", language: "en" }
8
9let list: number[] | null = null;
10list ??= [];
11list.push(42);
12
13console.log(list); // Output: [42]
- नलिश कोएलसिंग असाइनमेंट ऑपरेटर का उपयोग करके, आप अनावश्यक कोड को समाप्त कर सकते हैं और अधिक सहज, अधिक सुरुचिपूर्ण टाइपस्क्रिप्ट कोड लिख सकते हैं।
सारांश
nullish coalescing असाइनमेंट ऑपरेटर (??=
) TypeScript में सरल और प्रभावी असाइनमेंट ऑपरेशन्स में से एक है। यह विशेष रूप से उपयोगी है जब आपको डिफ़ॉल्ट मान सेट करते समय null
या undefined
की जांच करनी होती है। पारंपरिक if
स्टेटमेंट्स या टर्नरी ऑपरेटरों की तुलना में, कोड अधिक संक्षिप्त और पढ़ने में आसान हो जाता है।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।