কেন JSON থেকে TypeScript-এ রূপান্তর করবেন?

TypeScript স্ট্যাটিক টাইপ ব্যবহার করে runtime-এর পরিবর্তে compile time-এ bug ধরে। API, কনফিগারেশন ফাইল বা যেকোনো বাহ্যিক ডেটা সোর্স থেকে JSON রিটার্ন করার সময়, আপনাকে সাধারণত সেই ডেটার গঠন বর্ণনা করে এমন টাইপ বা interface সংজ্ঞায়িত করতে হয়। এই সংজ্ঞাগুলো হাতে লেখা ক্লান্তিকর এবং ত্রুটিপ্রবণ, বিশেষত গভীরভাবে নেস্টেড অবজেক্ট বা বিভিন্ন কাঠামোর বড় অ্যারের ক্ষেত্রে। রূপান্তর স্বয়ংক্রিয় করলে সময় বাঁচে এবং আপনার টাইপ ও প্রকৃত ডেটার মধ্যে অমিলের ঝুঁকি কমে।

টুলের বিবরণ

এই টুলটি যেকোনো বৈধ JSON ইনপুট — অবজেক্ট, অ্যারে বা নেস্টেড স্ট্রাকচার — গ্রহণ করে এবং তাৎক্ষণিকভাবে সংশ্লিষ্ট TypeScript টাইপ alias বা interface তৈরি করে। এটি স্বয়ংক্রিয়ভাবে নেস্টেড অবজেক্ট শনাক্ত করে, প্রতিটির জন্য আলাদা নামযুক্ত টাইপ তৈরি করে এবং এলিমেন্ট টাইপ অনুমান করে অ্যারে পরিচালনা করে। আপনার প্রজেক্টের কনভেনশন অনুযায়ী interface এবং type আউটপুট মোডের মধ্যে স্যুইচ করতে পারবেন।

উদাহরণ

ইনপুট JSON:

{
  "id": 1,
  "name": "Alice",
  "email": "alice@example.com",
  "address": {
    "street": "123 Main St",
    "city": "Springfield",
    "zip": "62701"
  },
  "roles": ["admin", "editor"]
}

আউটপুট (Interface মোড):

interface RootObject {
  id: number;
  name: string;
  email: string;
  address: Address;
  roles: string[];
}

interface Address {
  street: string;
  city: string;
  zip: string;
}

আউটপুট (Type মোড):

type RootObject = {
  id: number;
  name: string;
  email: string;
  address: Address;
  roles: string[];
};

type Address = {
  street: string;
  city: string;
  zip: string;
};

বৈশিষ্ট্যসমূহ

  • একটি ড্রপডাউনের মাধ্যমে interface বা type alias আউটপুটের মধ্যে বেছে নিন
  • নেস্টেড অবজেক্ট টাইপের স্বয়ংক্রিয় শনাক্তকরণ ও নিষ্কাশন
  • অবজেক্টের অ্যারেসহ অ্যারে এলিমেন্ট টাইপ অনুমান
  • অ্যারের মধ্যে বিভিন্ন অবজেক্ট শেপ একত্রিত করে ঐচ্ছিক প্রপার্টিসহ একটি একীভূত টাইপে রূপান্তর
  • সিনট্যাক্স-হাইলাইটেড JSON ও TypeScript এডিটরসহ রিয়েল-টাইম রূপান্তর

ব্যবহারের ক্ষেত্র

  • ফ্রন্টএন্ড ডেভেলপমেন্টের সময় API রেসপন্স পেলোডের জন্য দ্রুত TypeScript টাইপ সংজ্ঞায়িত করা
  • JSON কনফিগ ফাইল বা ডেটাবেজ এক্সপোর্ট থেকে টাইপ ডেফিনিশন তৈরি করা
  • নতুন TypeScript প্রজেক্ট শুরু করার সময় টাইপ-সেফ ডেটা মডেল বুটস্ট্র্যাপ করা

এটি কীভাবে কাজ করে

টুলটি বৈধ JSON পার্স করে এবং পুনরাবৃত্তিমূলকভাবে স্ট্রাকচারের মধ্য দিয়ে চলে। প্রতিটি অবজেক্টের জন্য এটি অবজেক্টের key-এর সাথে মিলে যাওয়া ফিল্ডসহ একটি নামযুক্ত interface বা টাইপ alias তৈরি করে। নেস্টেড অবজেক্ট অতিরিক্ত টাইপ তৈরি করে যেগুলো নাম দিয়ে রেফারেন্স করা হয়। এলিমেন্ট টাইপ নির্ধারণ করতে অ্যারে বিশ্লেষণ করা হয় — সমস্ত এলিমেন্ট অবজেক্ট হলে, তাদের শেপ একটি একক টাইপে একত্রিত হয় যেখানে প্রতিটি এলিমেন্টে উপস্থিত নয় এমন key গুলো ঐচ্ছিক হয়ে যায়।

টিপস

  • আপনার JSON ডেটার একটি প্রতিনিধিত্বমূলক নমুনা পেস্ট করুন। নমুনা যত সম্পূর্ণ হবে, তৈরি হওয়া টাইপ তত নির্ভুল হবে।
  • মিশ্র অবজেক্ট শেপের অ্যারের জন্য, একাধিক অবজেক্ট অন্তর্ভুক্ত করুন যাতে টুলটি ঐচ্ছিক ফিল্ড শনাক্ত করতে পারে।
  • আপনার প্রজেক্ট অবজেক্ট শেপের জন্য টাইপ alias পছন্দ করলে Type মোড ব্যবহার করুন, অথবা interface কনভেনশন অনুসরণ করলে Interface মোড ব্যবহার করুন।