JSON से TypeScript कनवर्टर
JSON सैंपल से TypeScript इंटरफ़ेस या टाइप एलियास बनाएँ: नेस्टेड टाइप, ऐरे आइटम का मर्ज, वैकल्पिक फ़ील्ड, export कीवर्ड। आपके ब्राउज़र में चलता है।
आपका इनपुट और फ़ाइलें ब्राउज़र में ही रहते हैं
JSON इनपुट
JSON का नमूना पेस्ट करें — टाइप करते ही TypeScript इंटरफ़ेस बन जाते हैं।
एडिटर में Tab इंडेंट करता है। एडिटर से बाहर जाने के लिए Esc दबाएँ, फिर Tab।
TypeScript इंटरफेस यहाँ दिखाई देंगे...
इस पृष्ठ पर
JSON सैंपल पेस्ट करें — API रिस्पॉन्स, कॉन्फ़िग फ़ाइल, टेस्ट फ़िक्स्चर — और टाइप करते-करते उसके लिए TypeScript डिक्लेरेशन पाएँ। नेस्टेड ऑब्जेक्ट अपने अलग नाम वाले इंटरफ़ेस बनते हैं, इसलिए आउटपुट सीधे .ts फ़ाइल में डाला जा सकता है।
विस्तृत कार्यक्षमता
टाइप वैल्यू से अनुमानित किए जाते हैं: string, number, boolean, null, ऐरे T[] के रूप में, मिले-जुले ऐरे (number | string | null)[] जैसे यूनियन के रूप में, और ख़ाली ऐरे unknown[] के रूप में। हर नेस्टेड ऑब्जेक्ट को उसके पाथ के PascalCase नाम वाला इंटरफ़ेस मिलता है (Order के अंदर shipping_address → OrderShippingAddress)। ऐरे के सभी ऑब्जेक्ट एक आइटम टाइप में मर्ज होते हैं: जो की कुछ एलिमेंट में नहीं है वह वैकल्पिक बन जाती है, और अलग-अलग वैल्यू टाइप वाली की को यूनियन मिलता है।
विकल्प: रूट नाम टॉप-लेवल टाइप का नाम तय करता है (डिफ़ॉल्ट Root); export कीवर्ड हर डिक्लेरेशन में export जोड़ता है; वैकल्पिक फ़ील्ड (?) — डिफ़ॉल्ट रूप से चालू — जिन कीज़ की वैल्यू null है उन्हें वैकल्पिक चिह्नित करता है; टाइप एलियास उपयोग करें interface X { … } की जगह type X = { … }; लिखता है। रूट ऐरे होने पर export type Users = UsersItem[]; जैसा एलियास बनता है। जो कीज़ वैध आइडेंटिफ़ायर नहीं हैं वे कोट में रखी जाती हैं ("order-id": string;), और टकराने वाले टाइप नामों में नंबर सफ़िक्स जुड़ता है।
हर बदलाव पर (थोड़े ठहराव के बाद) और कनवर्ट करें या Ctrl+Enter पर आउटपुट दोबारा बनता है; अमान्य JSON पर पार्सर की त्रुटि दिखती है। नतीजा एक रीड-ओनली एडिटर में होता है जिसे आप कॉपी करें से कॉपी कर सकते हैं या .ts डाउनलोड करें से types.ts के रूप में सहेज सकते हैं। सब कुछ लोकल रूप से चलता है — सैंपल कभी अपलोड या सेव नहीं होता।
व्यावहारिक उदाहरण
API ऑब्जेक्ट: रूट नाम User और export कीवर्ड के साथ {"id":7,"user_name":"ann","tags":["a"],"manager":null} से मिलता है export interface User { id: number; user_name: string; tags: string[]; manager?: null; }।
अलग-अलग ऑब्जेक्ट का ऐरे: रूट नाम Users के साथ [{"id":1,"email":"[email protected]"},{"id":2,"phone":"555"}] से मिलते हैं export interface UsersItem { id: number; email?: string; phone?: string; } और export type Users = UsersItem[];।
टाइप एलियास और कोट वाली कीज़: रूट नाम Order और टाइप एलियास उपयोग करें के साथ {"order-id":"A1","items":[{"sku":"x","qty":2}],"shipping_address":{"city":"Omsk"}} से मिलते हैं type OrderItemsItem = { sku: string; qty: number; };, type OrderShippingAddress = { city: string; }; और type Order = { "order-id": string; items: OrderItemsItem[]; shipping_address: OrderShippingAddress; };।
इस उपकरण का उपयोग कैसे करें
अपना JSON पेस्ट करें
JSON इनपुट एडिटर में JSON सैंपल डालें। TypeScript आउटपुट अपने-आप अपडेट हो जाता है।
विकल्प सेट करें
रूट नाम सेट करें और ज़रूरत के अनुसार export कीवर्ड, वैकल्पिक फ़ील्ड (?) और टाइप एलियास उपयोग करें चालू या बंद करें।
टाइप लें
डिक्लेरेशन कॉपी करने के लिए कॉपी करें पर क्लिक करें या उन्हें
types.tsके रूप में सहेजने के लिए .ts डाउनलोड करें पर।
सुझाव और सर्वोत्तम प्रथाएं
- सैंपल सिर्फ़ वही वैल्यू दिखाता है जो उसमें हैं: सैंपल में
nullवाला फ़ील्डnullटाइप पाता है, इसलिए उसे हाथ से असली टाइप (जैसेstring | null) से बदलें। - आइटम टाइप सही पाने के लिए अलग-अलग वैकल्पिक फ़ील्ड वाले कई ऐरे एलिमेंट शामिल करें।
- सभी नंबर
numberबनते हैं, और ISO फ़ॉर्मैट की तारीख़ेंstringही रहती हैं। - अगर
nullवैल्यू हमेशा स्पष्ट रूप से भेजी जाती हैं और आपmanager: nullको ज़रूरी की के रूप में चाहते हैं, तो वैकल्पिक फ़ील्ड (?) बंद करें। - प्रॉपर्टी नाम अपनी मूल स्पेलिंग में रहते हैं; सिर्फ़ टाइप नाम PascalCase में बदले जाते हैं।