یہ ٹول کیسے کام کرتا ہے
ایک JSON نمونہ پڑھا جاتا ہے اور جو کچھ واقعی موجود ہو اسی سے TypeScript کا انٹرفیس اخذ کیا جاتا ہے۔ اندرونی آبجیکٹ اندر ہی رکھنے کے بجائے اپنے الگ نامزد اقسام بن جاتے ہیں، اس لیے نتیجہ ایسا پڑھا جاتا ہے جیسے کسی انسان نے لکھا ہو۔ صفوں کو صرف پہلے عنصر کے بجائے ان کے سب عناصر پر جانچا جاتا ہے، اور یہی وہ چیز ہے جو ایسے خانے کو پکڑتی ہے جو زیادہ تر ریکارڈوں میں سٹرنگ ہو اور کسی ایک میں null۔
جہاں صف کے عناصر آپس میں مختلف ہوں، وہاں اندازے کے بجائے یونین قسم بنائی جاتی ہے۔ جو کلیدیں درست شناخت کنندے نہ ہوں انہیں واوین میں رکھا جاتا ہے، اور محفوظ الفاظ سے ٹکرانے والی کلیدیں سنبھال لی جاتی ہیں۔ اختیاری خصوصیات والی ترتیب کسی خانے کو اختیاری نشان زد کرتی ہے جہاں وہ صف کے کچھ آبجیکٹوں میں موجود نہ ہو — اور یہ عموماً اسے لازمی قرار دے کر بعد میں پتہ چلنے سے حقیقت کے زیادہ قریب ہوتا ہے۔
نمونے سے کیا اخذ ہو سکتا ہے اور کیا نہیں
- نمونہ شہادت ہے، تفصیل نامہ نہیں: جو خانہ آپ کے نمونے میں اتفاقاً سٹرنگ ہو اسے سٹرنگ کی قسم دی جاتی ہے۔ اگر API وہاں null بھی لوٹا سکتی ہو تو یہ صرف API کی دستاویز ہی بتائے گی۔
- اسے ایک کے بجائے کئی ریکارڈ دیں: آبجیکٹوں کی صف اخذ کرنے کو موازنے کے لیے کچھ دیتی ہے، اور اختیاری خانے اور یونین سرے سے اسی طرح دریافت ہوتے ہیں۔
- اعداد اپنے امتیاز کھو دیتے ہیں: JSON میں عدد کی ایک ہی قسم ہے، اس لیے صحیح عدد والا شناخت کنندہ اور اعشاری قیمت دونوں number بن جاتے ہیں۔ انہیں تنگ کرنا ہاتھ کا کام ہے۔
- تاریخیں سٹرنگ کی صورت میں آتی ہیں: JSON میں تاریخ کی کوئی قسم نہیں۔ جو خانہ وقت کی مہر لگتا ہو اسے سٹرنگ کی قسم ملتی ہے، اور اسے بدلنا آپ کے کوڈ کا فیصلہ ہے۔