মূল কন্টেন্টে যান
মডিউল 3 · 1-এর পাঠ 2কোর্সে 5/14~12 min
মডিউল পাঠ (1/2)

টাইপ করা ফাংশন

ফাংশন হল যেকোন জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনের মৌলিক বিল্ডিং ব্লক। TypeScript-এ, আমরা ইনপুট আর্গুমেন্ট এবং রিটার্ন মান উভয়ই সঠিকভাবে টীকা করতে পারি, আমাদের ইন্টারফেস এবং ফাংশন কলগুলিকে অত্যন্ত নিরাপদ এবং স্ব-নথিভুক্ত করে।


ঐচ্ছিক এবং ডিফল্ট পরামিতি

JavaScript-এ, প্রতিটি প্যারামিটার ঐচ্ছিক এবং বাদ দিলে undefined এ ডিফল্ট হয়। TypeScript-এ, ডিফল্টরূপে, প্রতিটি ঘোষিত পরামিতি বাধ্যতামূলক।

যাইহোক, আমরা প্রশ্ন চিহ্ন (?) ব্যবহার করে ঐচ্ছিক পরামিতি নির্ধারণ করতে পারি, অথবা সরাসরি ফাংশন স্বাক্ষরে ডিফল্ট মানগুলি নির্দিষ্ট করতে পারি।

1. ঐচ্ছিক পরামিতি

ঐচ্ছিক পরামিতিগুলি অবশ্যই সমস্ত বাধ্যতামূলক প্যারামিটারের পর অবস্থান করতে হবে:

TS
function greetUser(name: string, title?: string): string {
  if (title) {
    return `Good morning ${title} ${name}`;
  }
  return `Hello ${name}`;
}

2. ডিফল্ট পরামিতি

যদি একটি ডিফল্ট মান সহ একটি প্যারামিটারের জন্য কোনো মান প্রদান করা না হয়, TypeScript এর ধরন অনুমান করে এবং নির্দিষ্ট ডিফল্ট নির্ধারণ করে:

TS
function greetUserWithDefault(name: string, prefix: string = 'Hello'): string {
  return `${prefix} ${name}`;
}

বিশ্রামের প্যারামিটার (...args)

যখন আমরা একটি পরিবর্তনশীল সংখ্যক আর্গুমেন্ট গ্রহণ করতে চাই, তখন আমরা বাকি অপারেটর ব্যবহার করতে পারি। টাইপস্ক্রিপ্টে, এই পরামিতিগুলি অবশ্যই একটি অ্যারে হিসাবে টাইপ করা উচিত:

TS
function sumAll(message: string, ...numbers: number[]): string {
  const total = numbers.reduce((sum, n) => sum + n, 0);
  return `${message} ${total}`;
}

ফাংশনের ধরন (কল স্বাক্ষর)

আমরা একটি ফাংশনের প্রকার স্বাধীনভাবে সংজ্ঞায়িত করতে পারি এবং তারপর পরিবর্তনশীল ঘোষণা বা কলব্যাক আর্গুমেন্টে এটি পুনরায় ব্যবহার করতে পারি:

TS
// Define function type using type alias
type MathOperation = (a: number, b: number) => number;

const add: MathOperation = (x, y) => x + y;
const multiply: MathOperation = (x, y) => x * y;

অন্যান্য ফাংশন (কলব্যাক) আর্গুমেন্ট হিসাবে ফাংশন পাস করার সময় এই পদ্ধতি অপরিহার্য।


নিজে চেষ্টা করে দেখুন

অনুশীলনী 1: ঐচ্ছিক পরামিতি

ব্যায়াম#ts.m3.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

formatName নামে একটি ফাংশন তৈরি করুন যা একটি firstName প্যারামিটার (স্ট্রিং) এবং একটি ঐচ্ছিক lastName প্যারামিটার (স্ট্রিং) গ্রহণ করে। যদি শেষনাম দেওয়া থাকে, তাহলে 'firstName lastName' ফেরত দিন, অন্যথায় শুধুমাত্র 'firstName' দিন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

মনে রাখবেন যে ঐচ্ছিক প্যারামিটারটি লাস্টনেম?: বাধ্যতামূলকের পরে স্ট্রিং ব্যবহার করে ঘোষণা করা হয়েছে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অনুশীলনী 2: ডিফল্ট পরামিতি

ব্যায়াম#ts.m3.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

পাওয়ার নামে একটি ফাংশন তৈরি করুন যা একটি বেস (সংখ্যা) এবং একটি সূচক (2 এর ডিফল্ট মান সহ সংখ্যা) গ্রহণ করে। ফাংশনটি অবশ্যই গণনা করবে এবং সূচকে উত্থাপিত বেসের মান ফেরত দেবে (Math.pow ব্যবহার করুন)।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

বেস ব্যবহার করুন: সংখ্যা এবং সূচক: সংখ্যা = 2 ফাংশন স্বাক্ষরের মধ্যে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম 3: ফাংশন স্বাক্ষর

ব্যায়াম#ts.m3.l1.e3
প্রচেষ্টা: 0লোড হচ্ছে...

BinaryOp নামের একটি টাইপ উপনাম সংজ্ঞায়িত করুন যা একটি ফাংশনকে বর্ণনা করে যা দুটি সংখ্যার পরামিতি গ্রহণ করে এবং একটি সংখ্যা ফেরত দেয়। এর পরে, BinaryOp প্রকারের একটি ধ্রুবক নামের যোগফল ঘোষণা করুন যা যোগ প্রয়োগ করে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একটি ফাংশন প্রকারের সিনট্যাক্স হল (a: সংখ্যা, b: সংখ্যা) => সংখ্যা।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম 4: কলব্যাক ফাংশন

ব্যায়াম#ts.m3.l1.e4
প্রচেষ্টা: 0লোড হচ্ছে...

processItems নামে একটি ফাংশন তৈরি করুন যা দুটি প্যারামিটার গ্রহণ করে: আইটেম (স্ট্রিংগুলির একটি অ্যারে) এবং কলব্যাক (একটি ফাংশন যা একটি একক স্ট্রিং গ্রহণ করে এবং কিছুই ফেরত দেয় না, যেমন, অকার্যকর)। ফাংশনটিকে অবশ্যই আইটেমের প্রতিটি উপাদানের উপর একটি লুপ চালাতে হবে এবং কলব্যাকে পাঠাতে হবে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

স্বাক্ষরটিকে প্রক্রিয়া আইটেম (আইটেম: স্ট্রিং[], কলব্যাক: (আইটেম: স্ট্রিং) => অকার্যকর): অকার্যকর হিসাবে ঘোষণা করুন এবং কলব্যাক কল করতে একটি লুপ ব্যবহার করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ