TypeScript जीत गया। इससे हमें क्या मिला।

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

इसका मूल उद्देश्य कोड टूटने से पहले टाइपिंग की गलतियों (typos) को पकड़ना था। लेकिन इसका असली मूल्य इससे कहीं अधिक है।

Types ऐसी documentation का काम करते हैं जो कभी पुरानी नहीं पड़तीं। एक function signature आपको सटीक रूप से बताता है कि क्या भेजना है और बदले में क्या मिलेगा। यदि आप किसी लिस्ट में एक नया विकल्प जोड़ते हैं, तो compiler आपको अपने कोड के हर हिस्से को अपडेट करने के लिए मजबूर करता है। एक comment वहीं पड़ा रहेगा और आपको गलत जानकारी दे सकता है।

Refactoring सुरक्षित हो जाता है। पुराने JavaScript कोड में, किसी field का नाम बदलना एक जुए जैसा महसूस होता है। आप strings को खोजते हैं और बस उम्मीद करते हैं कि सब ठीक रहे। TypeScript में, आप type बदलते हैं और compiler आपको हर टूटी हुई लाइन की एक to-do list दे देता है। Refactoring अब डरावना नहीं रहा। यह बस एक काम है।

Types AI assistants को भी बेहतर बनाते हैं।

यदि आप AI से untyped JavaScript को एडिट करने के लिए कहते हैं, तो उसे स्ट्रक्चर का अंदाज़ा लगाना पड़ता है। यदि आप TypeScript का उपयोग करते हैं, तो type ही specification बन जाता है। AI जानता है कि क्या मान्य है। यदि AI कोई गलती करता है, तो compiler उसे तुरंत पकड़ लेता है। आपको रात के 2 बजे production crash का सामना नहीं करना पड़ता। आपको अपने editor में एक लाल लाइन दिख जाती है।

Types आपकी गति धीमी नहीं करते। AI की दुनिया में, वे आपकी गति बढ़ाते हैं। वे guardrails की तरह काम करते हैं ताकि आप जनरेट किए गए कोड पर भरोसा कर सकें।

अपने types को उद्देश्य के साथ लिखें:

• Multiple booleans के बजाय unions का उपयोग करें। "loading" | "error" | "ready" जैसा status उन तीन flags से बेहतर है जो एक-दूसरे का विरोध कर सकते हैं। • अपने domain types को नाम दें। अपना उद्देश्य दिखाने के लिए type Cents = number का उपयोग करें। • "any" से बचें। इसके बजाय "unknown" का उपयोग करें और उसे narrow down करें। "any" आपके safety net में एक छेद कर देता है। • Inference को अपना काम करने दें। आपको हर चीज़ को label करने की ज़रूरत नहीं है। अपनी सीमाओं (boundaries) जैसे function signatures को label करें और बाकी चीज़ों को अपने आप होने दें।

TypeScript ने केवल typos पकड़ने से कहीं ज़्यादा किया। इसने enforced contracts बनाए। ये contracts बिना किसी डर के refactoring और भरोसेमंद AI tools की अनुमति देते हैं।

हमने bugs को रोकने के लिए types का उपयोग करना शुरू किया था। हम इनका उपयोग इसलिए जारी रखते हैं क्योंकि ये बाकी सब कुछ की नींव हैं।

Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8