JSON سے TypeScript کنورٹر
API ریسپانس پیسٹ کریں اور استعمال کے لیے تیار TypeScript interfaces یا type aliases حاصل کریں، نیسٹڈ ٹائپس، اختیاری فیلڈز اور null unions خودکار طور پر اخذ شدہ۔
آپ کے براؤزر میں چلتا ہےسائن اپ کی ضرورت نہیںکچھ اپ لوڈ نہیں ہوتا
JSON سے TypeScript استعمال کرنے کا طریقہ
- JSON نمونہ، جیسے API ریسپانس، پہلے خانے میں پیسٹ کریں یا
.jsonفائل کھولیں۔ - روٹ ٹائپ کا نام سیٹ کریں (مثلاً
UserیاApiResponse)۔ interfaceیاtypeڈیکلیریشنز منتخب کریں اورexport،readonlyیا سب فیلڈز اختیاری کو آن/آف کریں۔- ان ویلیوز کے لیے جنہیں نمونہ ظاہر نہیں کر سکتا، جیسے خالی ارے اور nulls،
unknown(زیادہ محفوظ) یاanyمنتخب کریں۔ - بنایا گیا کوڈ کاپی کریں یا
.tsفائل کے طور پر ڈاؤن لوڈ کریں۔
ٹائپس کیسے اخذ ہوتی ہیں
- بنیادی ٹائپس: سٹرنگز، نمبرز اور بولینز
string،numberاورbooleanبنتے ہیں۔ - نیسٹڈ آبجیکٹس PascalCase میں اپنے الگ نامزد interfaces بنتے ہیں، اس لیے
billing_addressبن جاتا ہےBillingAddress۔ - آبجیکٹس کے ارے ایک آئٹم ٹائپ میں یکجا ہوتے ہیں جس کا نام واحد میں ہوتا ہے:
usersسےUser[]بنتا ہے۔ جو کی کچھ آئٹمز میں نہ ہو وہ اختیاری بن جاتی ہے (key?:)۔ - Null ویلیوز اس کی کے لیے دیکھی گئی دوسری ویلیوز کے ساتھ ملتی ہیں:
string | null۔ جو کی ہمیشہ صرفnullہو وہunknownیاanyپر چلی جاتی ہے۔ - ملے جلے ارے union ارے بنتے ہیں جیسے
(number | string)[]۔ - ایک جیسی شکلیں ایک بار ڈیکلیئر ہو کر دوبارہ استعمال ہوتی ہیں، اور مختلف شکلیں جن کا نام ایک جیسا بنتا ہو انہیں عددی لاحقہ ملتا ہے۔
- جو کیز درست identifiers نہیں، جیسے
"first-name"یا"2fa"، انہیں کوٹس میں رکھا جاتا ہے۔
interface بمقابلہ type
سادہ آبجیکٹ شکلوں کے لیے دونوں تقریباً ایک دوسرے کا متبادل ہیں۔ interface ڈیکلیریشنز کو extend اور merge کیا جا سکتا ہے اور یہ کمپائلر ایررز کچھ زیادہ واضح دیتی ہیں۔ type aliases unions اور mapped types بھی ظاہر کر سکتے ہیں۔ بہت سی ٹیمیں API ماڈلز کے لیے interfaces اور باقی سب کے لیے types استعمال کرتی ہیں؛ وہ چنیں جس کی آپ کا کوڈ بیس یا linter (@typescript-eslint/consistent-type-definitions) توقع کرتا ہے۔
اپنے نمونے سے بہتر ٹائپس حاصل کریں
ٹائپس اتنی ہی مکمل ہو سکتی ہیں جتنا نمونہ۔ ایسا ریسپانس پیسٹ کریں جس میں اختیاری فیلڈز ہوں، یا کئی مختلف آئٹمز والا ارے، تاکہ جنریٹر اختیاری اور nullable کیز پہچان سکے۔ تاریخیں اور enums جیسی ویلیوز JSON میں سادہ سٹرنگز کے طور پر آتی ہیں؛ بعد میں انہیں ہاتھ سے محدود کریں، مثلاً status: 'active' | 'disabled'۔ رن ٹائم ویلیڈیشن کے لیے بنائی گئی ٹائپس کو Zod جیسی schema لائبریری کے ساتھ استعمال کریں۔
اکثر پوچھے جانے والے سوالات
کیا میرا JSON اپ لوڈ ہوتا ہے؟
اختیاری پراپرٹیز کیسے پہچانی جاتی ہیں؟
? سے اختیاری نشان زد کیا جاتا ہے۔ ایک ہی آبجیکٹ ہو تو ہر کی لازمی ہے، جب تک آپ سب اختیاری پر نشان نہ لگائیں۔کیا مجھے <code>unknown</code> استعمال کرنا چاہیے یا <code>any</code>؟
unknown زیادہ محفوظ ہے: TypeScript آپ کو استعمال سے پہلے ویلیو کو محدود کرنے پر مجبور کرتا ہے۔ any اس ویلیو کے لیے ٹائپ چیکنگ بند کر دیتا ہے۔ اسے صرف تب استعمال کریں جب آپ بعد میں ٹائپس بہتر کرنے کا ارادہ رکھتے ہوں۔ISO تاریخ کی ٹائپ <code>string</code> کیوں ہے؟
new Date() سے تبدیل کرتے ہیں تو اپنے ماڈل میں پراپرٹی کو Date کر دیں۔