TypeScript Types को समझना

TypeScript एक टाइप सिस्टम पर आधारित है। इसमें महारत हासिल करना बेहतर कोड लिखने की दिशा में आपका पहला कदम है।

बुनियादी प्रकार (Basic Types)

TypeScript JavaScript primitives के समान प्रकारों का उपयोग करता है: • string: टेक्स्ट के लिए। • number: सभी संख्याओं के लिए (integers और floats)। • boolean: true या false मानों के लिए।

टाइप इन्फरेंस (Type Inference)

आपको हमेशा टाइप लिखने की आवश्यकता नहीं होती है। TypeScript अक्सर आपके द्वारा दिए गए मान (value) के आधार पर टाइप का अनुमान लगा लेता है। इसे इन्फरेंस (inference) कहा जाता है।

एक अच्छा नियम: • लोकल वेरिएबल्स के लिए TypeScript को टाइप इन्फर करने दें। • फंक्शन पैरामीटर्स और रिटर्न टाइप्स के लिए स्पष्ट (explicit) टाइप लिखें।

एरे और टुपल्स (Arrays and Tuples)

Arrays एक ही प्रकार के कई मानों को रखते हैं। • उदाहरण: let tags: string[] = ["ts", "js"];

Tuples एक निश्चित लंबाई वाले एरे होते हैं जिनमें प्रत्येक स्थिति (position) के लिए विशिष्ट प्रकार होते हैं। • उदाहरण: let user: [string, number] = ["Ramesh", 31];

यूनियन टाइप्स (Union Types)

यूनियन टाइप्स का उपयोग तब करें जब कोई मान एक से अधिक प्रकार का हो सकता है। • उदाहरण: let id: string | number = "abc123";

विशेष प्रकार (Special Types)

चार प्रकार अक्सर शुरुआती लोगों को भ्रमित करते हैं:

  1. any यह टाइप चेकिंग को बंद कर देता है। यह आपके कोड को साधारण JavaScript की तरह काम करने पर मजबूर कर देता है। इसका उपयोग केवल अंतिम विकल्प के रूप में करें।

  2. unknown यह any का सुरक्षित संस्करण है। यह कहता है कि मान कुछ भी हो सकता है, लेकिन उपयोग करने से पहले आपको टाइप की जांच करनी होगी।

  3. void इसका उपयोग उन फंक्शन्स के लिए करें जो कोई मान वापस (return) नहीं करते हैं।

  4. never इसका उपयोग उन फंक्शन्स के लिए करें जो कभी समाप्त नहीं होते, जैसे कि वे जो एरर (errors) देते हैं या अनंत लूप (infinite loops) चलाते हैं।

आपके वर्कफ़्लो के लिए सारांश: • अधिकांश डेटा के लिए primitives का उपयोग करें। • कोड को साफ रखने के लिए inference का उपयोग करें। • लचीले इनपुट के लिए union types का उपयोग करें। • any से बचें। • जब आप अनिश्चित हों तो any के बजाय unknown का उपयोग करें।

स्रोत: https://dev.to/ramesh_s_a8f0867d239e927c/typescript-types-demystified-simple-types-special-types-and-type-inference-5bf0