JSON से TypeScript कन्वर्टर

API रिस्पॉन्स पेस्ट करें और इस्तेमाल के लिए तैयार TypeScript इंटरफ़ेस या टाइप एलियास पाएँ, जिनमें नेस्टेड टाइप, optional फ़ील्ड और null यूनियन अपने-आप पहचाने जाते हैं।

आपके ब्राउज़र में चलता हैसाइन-अप ज़रूरी नहींकुछ भी अपलोड नहीं होता

TypeScript

JSON से TypeScript का उपयोग कैसे करें

  1. बाएँ बॉक्स में JSON उदाहरण, जैसे API रिस्पॉन्स, पेस्ट करें या कोई .json फ़ाइल खोलें।
  2. रूट टाइप का नाम सेट करें (जैसे User या ApiResponse)।
  3. interface या type डिक्लेरेशन चुनें और export, readonly या सभी-optional फ़ील्ड चालू/बंद करें।
  4. जिन वैल्यू को उदाहरण से समझा नहीं जा सकता, जैसे खाली array और null, उनके लिए unknown (ज़्यादा सुरक्षित) या any चुनें।
  5. जनरेट किया गया कोड कॉपी करें या .ts फ़ाइल के रूप में डाउनलोड करें।

टाइप कैसे पहचाने जाते हैं

  • Primitive: स्ट्रिंग, नंबर और बूलियन क्रमशः string, number और boolean बनते हैं।
  • नेस्टेड ऑब्जेक्ट PascalCase में अपने नामित इंटरफ़ेस बनते हैं, इसलिए billing_address से BillingAddress बनता है।
  • ऑब्जेक्ट के array एकवचन नाम वाले एक आइटम टाइप में मर्ज होते हैं: users से User[] बनता है। जो की कुछ आइटम में नहीं है, वह optional (key?:) बन जाती है।
  • Null वैल्यू उस की के लिए देखी गई अन्य वैल्यू से जुड़ती हैं: string | null। जो की हमेशा null ही हो, वह unknown या any पर आ जाती है।
  • मिश्रित array यूनियन array बनते हैं, जैसे (number | string)[]।
  • एक जैसे आकार एक बार घोषित होकर दोबारा इस्तेमाल होते हैं, और जिन अलग आकारों का नाम एक जैसा होता, उन्हें संख्यात्मक प्रत्यय मिलता है।
  • जो की मान्य identifier नहीं हैं, जैसे "first-name" या "2fa", उन्हें कोट्स में रखा जाता है।

interface बनाम type

साधारण ऑब्जेक्ट आकारों के लिए दोनों लगभग एक जैसे हैं। interface डिक्लेरेशन को extend और merge किया जा सकता है, और ये थोड़े साफ़ कंपाइलर एरर देते हैं। type एलियास यूनियन और mapped type भी व्यक्त कर सकते हैं। कई टीमें API मॉडल के लिए interface और बाकी सब के लिए type इस्तेमाल करती हैं; जो आपका कोडबेस या लिंटर (@typescript-eslint/consistent-type-definitions) चाहता है, वही चुनें।

अपने उदाहरण से बेहतर टाइप पाएँ

टाइप उतने ही पूरे हो सकते हैं जितना उदाहरण। ऐसा रिस्पॉन्स पेस्ट करें जिसमें optional फ़ील्ड हों, या कई अलग-अलग आइटम वाला array, ताकि जनरेटर optional और nullable की पहचान सके। तारीख और enum जैसी वैल्यू JSON में साधारण स्ट्रिंग के रूप में आती हैं; बाद में उन्हें हाथ से सीमित करें, जैसे status: 'active' | 'disabled'। रनटाइम वैलिडेशन के लिए जनरेट किए गए टाइप को Zod जैसी स्कीमा लाइब्रेरी के साथ इस्तेमाल करें।

अक्सर पूछे जाने वाले सवाल

क्या मेरा JSON अपलोड होता है?
नहीं। टाइप आपके ब्राउज़र में JavaScript से जनरेट होते हैं। टोकन या निजी डेटा वाले API रिस्पॉन्स कभी आपके डिवाइस से बाहर नहीं जाते।
optional प्रॉपर्टी कैसे पहचानी जाती हैं?
जब एक ही array के ऑब्जेक्ट में अलग-अलग की हों, तो कम से कम एक ऑब्जेक्ट में छूटी की को ? से optional चिह्नित किया जाता है। एक ही ऑब्जेक्ट हो तो हर की ज़रूरी होती है, जब तक आप सभी वैकल्पिक पर टिक न करें।
मुझे <code>unknown</code> इस्तेमाल करना चाहिए या <code>any</code>?
unknown ज़्यादा सुरक्षित है: TypeScript इस्तेमाल से पहले वैल्यू को narrow करवाता है। any उस वैल्यू के लिए टाइप चेकिंग बंद कर देता है। इसे तभी इस्तेमाल करें जब आप बाद में टाइप सुधारने वाले हों।
ISO तारीख का टाइप <code>string</code> क्यों है?
JSON में कोई date टाइप नहीं है, इसलिए तारीखें स्ट्रिंग के रूप में आती हैं। अगर आप पार्स करने के बाद उन्हें new Date() से बदलते हैं, तो अपने मॉडल में प्रॉपर्टी को Date कर दें।
क्या यह बड़े या गहराई से नेस्टेड JSON संभाल सकता है?
हाँ। जनरेशन इनपुट के आकार के अनुपात में होता है और लोकली चलता है, इसलिए कई मेगाबाइट के रिस्पॉन्स एक सेकंड से भी कम में कन्वर्ट हो जाते हैं।

संबंधित टूल्स