JSON से TypeScript 🔒 आपके ब्राउज़र में स्थानीय रूप से चलता है — कुछ भी अपलोड नहीं होता।

JSON सैंपल से TypeScript इंटरफ़ेस बनाएँ।

 

इस टूल के बारे में

किसी API रिस्पॉन्स से मेल खाने के लिए TypeScript इंटरफ़ेस हाथ से लिखना एक थकाऊ काम है — और इसमें सूक्ष्म गलती आसान है। यहाँ एक सैंपल JSON पेस्ट करें और तुरंत मेल खाते इंटरफ़ेस पाएँ। नेस्टेड ऑब्जेक्ट अपने अलग नामित इंटरफ़ेस में निकाले जाते हैं, ऑब्जेक्ट के ऐरे मर्ज होते हैं ताकि कुछ प्रविष्टियों में गायब कुंजियाँ वैकल्पिक बनें, और एक से अधिक प्रकार वाले मान यूनियन बनें।

यह एक हल्के infererर का उपयोग करते हुए पूरी तरह आपके ब्राउज़र में चलता है — आपका JSON कभी अपलोड नहीं होता। पेस्ट करें, चाहें तो रूट नाम बदलें, और उपयोग के लिए तैयार टाइप अपने प्रोजेक्ट में कॉपी करें।

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

क्या मेरा JSON डेटा कहीं अपलोड होता है?

नहीं। पार्सिंग और टाइप इनफरेंस पूरी तरह आपके ब्राउज़र के JavaScript में ही चलते हैं — आपका JSON कभी आपकी डिवाइस से बाहर नहीं जाता।

अगर array के ऑब्जेक्ट्स में अलग-अलग फ़ील्ड्स हों, तो यह उन्हें कैसे हैंडल करता है?

यह array के सभी ऑब्जेक्ट्स की keys को एक ही interface में मिला देता है; जो key सभी में मौजूद नहीं होती, उसे हटाने के बजाय `?` के साथ ऑप्शनल मार्क कर दिया जाता है।

अगर array में मिक्स्ड टाइप्स हों, जैसे numbers और strings, तो क्या होता है?

यह `(string | number)[]` जैसा एक यूनियन array टाइप बनाता है, ताकि शेप सैंपल में वाकई मौजूद हर वैल्यू को सही तरह दिखाए।

क्या मैं interface की जगह type alias जनरेट कर सकता हूँ?

हाँ, 'as type' टॉगल करें और हर जनरेट किया गया `interface Name {}` `type Name = {}` में बदल जाएगा — अगर आपके कोडबेस में type alias पसंद किए जाते हैं तो यह उपयोगी है।

अगर मैं अमान्य JSON पेस्ट कर दूँ तो क्या होगा?

टूल एक एरर मैसेज दिखाता है जिसमें समस्या की सटीक लाइन और कॉलम बताई जाती है, और आप सीधे वहाँ जा सकते हैं — बजाय एक सामान्य 'invalid JSON' मैसेज के।

क्या यह nested objects और arrays को हैंडल करता है, सिर्फ़ flat JSON को नहीं?

हाँ। नेस्टेड ऑब्जेक्ट अपना अलग नामित interface बनाता है, जिसका नाम parent key से लिया जाता है (जैसे `profile: {...}` से `Profile` interface बनेगा), और array के नाम singular कर दिए जाते हैं (`roles` → `Role[]`)। ऑब्जेक्ट्स के array से एक ही interface बनता है जो हर एलिमेंट में शेयर होता है, जिन फ़ील्ड्स हर जगह मौजूद नहीं होतीं उन्हें `?` से मार्क किया जाता है — हर array आइटम के लिए अलग interface नहीं बनता।