TypeScript जीत गया। इससे हमें क्या मिला।
बहस खत्म हो चुकी है। अधिकांश नए frontend प्रोजेक्ट्स डिफ़ॉल्ट रूप से TypeScript का उपयोग करते हैं। लोग अब इसे अपनाने या न अपनाने पर बहस नहीं करते।
असली मूल्य केवल टाइपिंग की गलतियों (typos) को पकड़ने तक सीमित नहीं है। यह इसके मूल उद्देश्य से कहीं अधिक गहरा है।
Types ऐसी documentation प्रदान करते हैं जो कभी पुरानी (stale) नहीं होती। एक function signature आपको सटीक रूप से बताता है कि कोड के एक हिस्से को क्या चाहिए और वह क्या रिटर्न करता है। यदि कोई डेवलपर union type में एक नया विकल्प जोड़ता है, तो compiler आपको अपने कोड के हर हिस्से को अपडेट करने के लिए मजबूर करता है। Comments समय के साथ बेकार हो जाते हैं, लेकिन Types नहीं।
Refactoring एक डरावने काम से बदलकर एक सुरक्षित काम बन जाता है। Untyped code में, किसी field का नाम बदलना जुए जैसा महसूस होता है। TypeScript में, आप type बदलते हैं और compiler आपको हर टूटी हुई लाइन की सूची दे देता है। इससे पुराने कोड को छूने का डर खत्म हो जाता है।
Types AI के साथ आपके काम को भी बेहतर बनाते हैं।
जब आप AI को untyped JavaScript को एडिट करने के लिए कहते हैं, तो वह स्ट्रक्चर का अंदाज़ा लगाता है। वह ऐसी गलतियाँ करता है जिससे production errors हो सकते हैं। TypeScript में, type एक specification की तरह काम करता है। AI नियमों को जानता है। यदि AI कोई गलती करता है, तो compiler उसे तुरंत पकड़ लेता है। Types "संभावित कोड" (plausible code) को "प्रमाणित कोड" (proven code) में बदल देते हैं।
Types आपकी गति धीमी नहीं करते। AI workflow में, वे आपकी गति बढ़ाते हैं। वे guardrails की तरह काम करते हैं ताकि आप हर लाइन को मैन्युअल रूप से चेक किए बिना जनरेट किए गए कोड पर भरोसा कर सकें।
अपने types को उद्देश्य के साथ लिखें:
• कई booleans के बजाय unions का उपयोग करें। "loading" | "error" | "ready" जैसा status असंभव स्थितियों (impossible states) को रोकता है। • अपने domain types को नाम दें। "type Cents = number" का उपयोग करने से आपका उद्देश्य स्पष्ट हो जाता है। • "any" से बचें। इसके बजाय "unknown" का उपयोग करें और अपने types को narrow करें। "any" आपके safety net को नष्ट कर देता है। • inference को काम करने दें। आपको हर चीज़ को label करने की ज़रूरत नहीं है। अपने function signatures और exported APIs को label करें, फिर बाकी चीज़ों को अपने आप होने दें।
TypeScript ने codebases को लागू किए गए contracts के सेट में बदल दिया है। ये contracts बिना किसी डर के refactoring और विश्वसनीय AI सहायता को सक्षम बनाते हैं।
हमने bugs को रोकने के लिए types का उपयोग करना शुरू किया था। हम इनका उपयोग इसलिए जारी रखते हैं क्योंकि ये बाकी सब कुछ के लिए आधार (foundation) हैं।
Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
