JSON से TypeScript कन्वर्टर
API रिस्पॉन्स पेस्ट करें और इस्तेमाल के लिए तैयार TypeScript इंटरफ़ेस या टाइप एलियास पाएँ, जिनमें नेस्टेड टाइप, optional फ़ील्ड और null यूनियन अपने-आप पहचाने जाते हैं।
आपके ब्राउज़र में चलता हैसाइन-अप ज़रूरी नहींकुछ भी अपलोड नहीं होता
JSON से TypeScript का उपयोग कैसे करें
- बाएँ बॉक्स में JSON उदाहरण, जैसे API रिस्पॉन्स, पेस्ट करें या कोई
.jsonफ़ाइल खोलें। - रूट टाइप का नाम सेट करें (जैसे
UserयाApiResponse)। interfaceयाtypeडिक्लेरेशन चुनें औरexport,readonlyया सभी-optional फ़ील्ड चालू/बंद करें।- जिन वैल्यू को उदाहरण से समझा नहीं जा सकता, जैसे खाली array और null, उनके लिए
unknown(ज़्यादा सुरक्षित) याanyचुनें। - जनरेट किया गया कोड कॉपी करें या
.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 अपलोड होता है?
optional प्रॉपर्टी कैसे पहचानी जाती हैं?
? से optional चिह्नित किया जाता है। एक ही ऑब्जेक्ट हो तो हर की ज़रूरी होती है, जब तक आप सभी वैकल्पिक पर टिक न करें।मुझे <code>unknown</code> इस्तेमाल करना चाहिए या <code>any</code>?
unknown ज़्यादा सुरक्षित है: TypeScript इस्तेमाल से पहले वैल्यू को narrow करवाता है। any उस वैल्यू के लिए टाइप चेकिंग बंद कर देता है। इसे तभी इस्तेमाल करें जब आप बाद में टाइप सुधारने वाले हों।ISO तारीख का टाइप <code>string</code> क्यों है?
new Date() से बदलते हैं, तो अपने मॉडल में प्रॉपर्टी को Date कर दें।