TypeScript में कोड रिव्यू: क्या जाँचें और फीडबैक कैसे दें

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

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

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

TypeScript में कोड रिव्यू: क्या जाँचें और व्यवहार में फीडबैक कैसे दें

\n\n

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

\n\n

1. टाइप्स और एनोटेशन: `any` से बचें और सख्ती का उपयोग करें

\n\n

TypeScript कोड के रिव्यू में सबसे पहली चीज़ जो ध्यान खींचती है, वह है टाइप्स। TypeScript को कंपाइलेशन के समय त्रुटियों को पकड़ने के लिए बनाया गया है, इसलिए any एक लाल झंडा है।

\n\n

क्या जाँचें:

\n
    \n
  • any की उपस्थिति। प्रत्येक any को उचित ठहराया जाना चाहिए। यदि यह JS से माइग्रेशन है तो ठीक है, लेकिन नए कोड में नहीं।
  • \n
  • टाइप्स की सटीकता। जहाँ enum या union type की आवश्यकता हो, वहाँ string का उपयोग न करें।
  • \n
  • अनावश्यक टाइपिंग। TypeScript टाइप्स का अनुमान लगा सकता है। const x: number = 5 न लिखें — const x = 5 लिखें।
  • \n
  • सख्त सेटिंग्स। जाँचें कि tsconfig.json में strict: true, noImplicitAny, strictNullChecks शामिल हैं।
  • \n
\n\n

खराब कोड का उदाहरण:

\n
function processData(data: any) {\n  return data.name.toLowerCase();\n}
\n\n

कैसे सुधारें:

\n
interface User {\n  name: string;\n}\n\nfunction processData(data: User): string {\n  return data.name.toLowerCase();\n}
\n\n

फीडबैक कैसे दें:

\n

"आप `any` का उपयोग कर रहे हैं, यह बुरा है" कहने के बजाय कहें: "यहाँ any टाइप चेकिंग को बंद कर देता है। आइए User इंटरफ़ेस को परिभाषित करें — इससे कोड की सुरक्षा और पठनीयता बढ़ेगी।"

\n\n

2. null और undefined के साथ काम करना: strictNullChecks जीवन बचाता है

\n\n

Cannot read property of undefined त्रुटियाँ क्लासिक हैं। TypeScript strictNullChecks के साथ उनसे बचने में मदद करता है, लेकिन केवल तभी जब डेवलपर nullable-मानों को सही ढंग से संभालता है।

\n\n

क्या जाँचें:

\n
    \n
  • प्रॉपर्टी तक पहुँचने से पहले null/undefined की जाँच करना।
  • \n
  • optional chaining (?.) का उपयोग — यह आधुनिक और सुरक्षित है।
  • \n
  • ! ऑपरेटर (non-null assertion) — इसका उपयोग केवल तभी करें जब 100% सुनिश्चित हों कि मान null नहीं है। बेहतर होगा कि इसे स्पष्ट जाँच से बदल दें।
  • \n
  • डिफ़ॉल्ट मानों के लिए || के बजाय ?? (nullish coalescing) का सही उपयोग करना।
  • \n
\n\n

खराब कोड का उदाहरण:

\n
function getCity(user: User | null): string {\n  return user!.address!.city; // खतरनाक!\n}
\n\n

कैसे सुधारें:

\n
function getCity(user: User | null): string {\n  return user?.address?.city ?? 'Unknown';\n}
\n\n

फीडबैक कैसे दें:

\n

"यहाँ ! का उपयोग जोखिम भरा है — यदि user null निकला, तो त्रुटि होगी। आइए इसे ?. और ?? से बदलें — यह सुरक्षित और पठनीय है।"

\n\n

3. जेनेरिक्स और उपयोगिता टाइप्स: बिना आवश्यकता के जटिल न बनाएँ

\n\n

जेनेरिक्स एक शक्तिशाली सुविधा है, लेकिन इसे आसानी से अत्यधिक जटिल बनाया जा सकता है। रिव्यूअर को लचीलेपन और पठनीयता के बीच संतुलन पर ध्यान देना चाहिए।

\n\n

क्या जाँचें:

\n
    \n
  • अत्यधिक जटिलता। यदि जेनेरिक का उपयोग केवल एक बार किया गया है, तो संभवतः इसकी आवश्यकता नहीं है।
  • \n
  • extends का सही उपयोग — जेनेरिक्स को सीमित करें ताकि वे सब कुछ स्वीकार न करें।
  • \n
  • उपयोगिता टाइप्स (Partial, Pick, Omit, Record) — इनका उपयोग कोड को सरल बनाता है।

ब्लॉग

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