TypeScript में null और undefined की जाँच कैसे करें: खतरे और सर्वोत्तम समाधान

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: क्यों "सिर्फ if (value)" आपको निराश कर सकता है?

\n

JavaScript से TypeScript पर आने वाला हर डेवलपर देर-सबेर इस सवाल का सामना करता है: "Is there a way to check for both null and undefined?"। इस प्रश्न को Stack Overflow पर हज़ारों बार देखा गया है - और यह व्यर्थ नहीं है। पहली नज़र में, कार्य तुच्छ लगता है: if (value != null) या if (value) लिखना। लेकिन हमेशा की तरह, शैतान विवरण में छिपा है।

\n

इस लेख में, हम उन शीर्ष त्रुटियों पर चर्चा करेंगे जो शुरुआती (और न केवल) TypeScript में null और undefined की जाँच करते समय करते हैं। आप जानेंगे कि क्यों असख्त तुलना जितनी लगती है उससे कहीं अधिक खतरनाक हो सकती है, Nullish Coalescing (??) ऑपरेटर कैसे काम करता है, और कब कस्टम टाइप गार्ड का उपयोग करना चाहिए। चलिए शुरू करते हैं!

\n\n

गलती #1: सभी गलत मानों के लिए if (!value) का उपयोग करना

\n

सबसे आम एंटी-पैटर्न नकार के माध्यम से मान की उपस्थिति की जाँच करने का प्रयास है:

\n
// ❌ खराब\nfunction processInput(input: string | null | undefined) {\n  if (!input) {\n    console.log('इनपुट मौजूद नहीं है');\n    return;\n  }\n  console.log(input.toUpperCase());\n}\n\nprocessInput(''); // ❌ "इनपुट मौजूद नहीं है" प्रिंट करेगा, हालाँकि स्ट्रिंग खाली है, लेकिन null या undefined नहीं है\n
\n

समस्या यह है कि !value किसी भी गलत मान को true में बदल देता है। TypeScript (और JavaScript) में, गलत मान माने जाते हैं: false, 0, '' (खाली स्ट्रिंग), NaN, null, undefined। यदि आपका व्यावसायिक तर्क खाली स्ट्रिंग या संख्या 0 की अनुमति देता है, तो ऐसा कोड टूट जाएगा।

\n

कैसे बचें: === या !== के माध्यम से null और undefined के लिए सख्त जाँच का उपयोग करें।

\n\n

गलती #2: value == null पर आँख बंद करके भरोसा करना

\n

कई डेवलपर जानते हैं कि value == null (डबल इक्वल) एक साथ null और undefined दोनों की जाँच करता है। यह वास्तव में काम करता है:

\n
// ✅ काम करता है, लेकिन...\nfunction check(value: string | null | undefined) {\n  if (value == null) {\n    console.log('value null या undefined है');\n  }\n}\n
\n

हालाँकि, TypeScript में डबल इक्वल अस्पष्ट बग का स्रोत है। उदाहरण के लिए, null == undefined — true है, लेकिन null == false — false है। और '' == false के बारे में क्या? वह भी true है। असख्त तुलना अप्रत्याशित रूप से व्यवहार कर सकती है, विशेष रूप से जटिल स्थितियों में।

\n

कैसे बचें: TypeScript में value == null एक आधिकारिक रूप से अनुमत पैटर्न है (लिंटर अक्सर इसकी अनुमति देता है), लेकिन शुरुआती लोगों के लिए स्पष्ट दृष्टिकोण का पालन करना बेहतर है: value === null || value === undefined।

\n\n

गलती #3: ऑब्जेक्ट के साथ काम करते समय undefined को अनदेखा करना

\n

कभी-कभी डेवलपर केवल null की जाँच करते हैं, undefined के बारे में भूल जाते हैं:

\n
// ❌ खतरनाक\ninterface User {\n  name?: string;\n  age: number | null;\n}\n\nfunction greet(user: User) {\n  if (user.age !== null) {\n    console.log(`आयु: ${user.age}`);\n  }\n  // यदि age पास नहीं किया गया है (undefined), कोड निष्पादित होगा!\n}\n\ngreet({ name: 'Alice' }); // "आयु: undefined" प्रिंट करेगा\n
\n

फ़ील्ड age null, number या undefined (यदि इंटरफ़ेस में निर्दिष्ट नहीं है) हो सकता है। केवल null की जाँच undefined को छोड़ देती है।

\n

कैसे बचें: यदि प्रकार दोनों की अनुमति देता है तो हमेशा दोनों मानों की जाँच करें। या Optional Chaining (?.) और Nullish Coalescing (??) ऑपरेटर का उपयोग करें।

\n\n

सबसे अच्छा तरीका: === के साथ सख्त जाँच

\n

सबसे

ब्लॉग

पुस्तक अनुशंसाएँ