টাইপস্ক্রিপ্টে জেনেরিক সীমাবদ্ধতায় টাইপ প্যারামিটার ব্যবহার

টাইপস্ক্রিপ্টে আরও একটি সম্ভাবনা আছে একটি টাইপ প্যারামিটার ঘোষণা করার, যেটি অন্য একটি টাইপ প্যারামিটার দ্বারা সীমাবদ্ধ হবে। এটি প্রয়োজন যখন একটি অবজেক্ট থেকে বৈশিষ্ট্যগুলি অন্য একটি অবজেক্টে কপি করতে হয়, এবং একই সাথে এটি নিশ্চিত করতে হয় যে আমরা অতিরিক্ত বৈশিষ্ট্য পাঠাব না।

নিম্নলিখিত উদাহরণটি দেখা যাক। আবার ফিরে যাই ফাংশন myFunc-এ, যা ভেরিয়েবলের দৈর্ঘ্য নির্ধারণ করে:

typescriptfunction myFunc <T> (data: T): T {
  console.log(data.length); // ত্রুটি
  return data;
}

যাইহোক, এখন আমরা চাই যে এই ফাংশনটি শুধুমাত্র সেই টাইপগুলির সাথে কাজ করবে যাদের length বৈশিষ্ট্য আছে। এর জন্য তৈরি করি ইন্টারফেস ILength, যেটিতে দেব length বৈশিষ্ট্য নিউমেরিক টাইপের:

typescriptinterface ILength {
  length: number;
}

এরপর আমাদের ফাংশনে সেট করব জেনেরিক টাইপ, যা ILength থেকে ইনহেরিট করবে extends কীওয়ার্ডের মাধ্যমে:

typescriptfunction myFunc <T extends ILength> (data: T): T {
  console.log(data.length);
  return data;
}

এভাবেই আমাদের সম্পূর্ণ কোডটি দেখতে:

typescriptinterface ILength {
  length: number;
}

function myFunc <T extends ILength> (data: T): T {
  console.log(data.length);
  return data;
}

আসুন আমাদের ফাংশনের কাজ পরীক্ষা করি এবং স্ট্রিং-এর দৈর্ঘ্য খুঁজে বের করি:

typescriptconsole.log(myFunc('abcde'));

কোড 실행ের ফলাফল:

typescript5
'abcde'

এবার প্যারামিটারে একটি অ্যারে পাঠাই:

typescriptconsole.log(myFunc(['a', 'b', 'c']));

কোড 실행ের ফলাফল:

typescript3
[ 'a', 'b', 'c' ]