অ্যাপস স্ক্রিপ্টে JSDoc

গুগল শিটস ইউআই-তে ডকুমেন্টেশন এবং স্ক্রিপ্ট-স্তরের টীকা।

গুগল অ্যাপস স্ক্রিপ্ট আপনার স্ক্রিপ্টের জন্য ডকুমেন্টেশন তৈরি এবং অটোকম্পলিট করার জন্য JSDoc ব্যবহার করে। JSDoc হল মন্তব্য ব্যবহার করে জাভাস্ক্রিপ্ট কোড ডকুমেন্ট করার জন্য একটি স্ট্যান্ডার্ড।

অ্যাপস স্ক্রিপ্টে, JSDoc নিম্নলিখিত প্রধান উদ্দেশ্যগুলি পূরণ করে:

  1. এডিটরে স্বয়ংক্রিয়ভাবে সম্পন্ন করা : টাইপ করার সাথে সাথে প্যারামিটারের ইঙ্গিত এবং ফাংশনের বিবরণ প্রদান করা।
  2. গুগল শিটে কাস্টম ফাংশন : আপনার কাস্টম ফাংশনগুলি ডকুমেন্ট করা যাতে সেগুলি শিট সূত্র সহায়কে প্রদর্শিত হয়।
  3. স্ক্রিপ্ট-স্তরের টীকা : অনুমোদনের মতো স্ক্রিপ্ট-ব্যাপী আচরণ নিয়ন্ত্রণ করতে বিশেষ ট্যাগ ব্যবহার করা।

ডকুমেন্ট ফাংশন

একটি ফাংশন ডকুমেন্ট করার জন্য, ফাংশন ঘোষণার ঠিক উপরে একটি JSDoc মন্তব্য ব্লক রাখুন। একটি JSDoc মন্তব্য /** দিয়ে শুরু হয় এবং */ দিয়ে শেষ হয়।

/**
 * Multiplies an input value by 2.
 *
 * @param {number} input The value to multiply.
 * @return {number} The input multiplied by 2.
 */
function double(input) {
  return input * 2;
}

যখন আপনি এইভাবে একটি ফাংশন ডকুমেন্ট করেন, তখন ফাংশনটি উল্লেখ করার সময় অ্যাপস স্ক্রিপ্ট এডিটর একটি ডকুমেন্টেশন টুলটিপ দেখায়। উদাহরণস্বরূপ, যখন আপনি এডিটরে double( টাইপ করেন, তখন আপনি দেখতে পাবেন:

দ্বিগুণ (ইনপুট)

একটি ইনপুট মানকে 2 দ্বারা গুণ করে।

ইনপুট : সংখ্যা — গুণ করার জন্য মান।

সাধারণ ট্যাগ

ট্যাগ বিবরণ
@param {type} name description একটি ফাংশন প্যারামিটার ডকুমেন্ট করে। {type} এবং description ডেভেলপমেন্ট এনভায়রনমেন্ট দ্বারা স্বয়ংসম্পূর্ণতার জন্য ব্যবহৃত হয়।
@return {type} description ফাংশনের রিটার্ন মান নথিভুক্ত করে।
@example ফাংশনটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ প্রদান করে।

ওভারলোড এবং একাধিক প্রকার

যদিও জাভাস্ক্রিপ্ট ক্লাসিক্যাল ফাংশন ওভারলোডিং (একই নামের একাধিক ফাংশন সংজ্ঞায়িত করা) সমর্থন করে না, আপনি একটি একক ফাংশন লিখতে পারেন যা বিভিন্ন ধরণের ইনপুট পরিচালনা করে। আপনি JSDoc-এ এই "ওভারলোডেড" আচরণগুলি নথিভুক্ত করতে পারেন।

ইউনিয়নের ধরণ

যদি একটি প্যারামিটার বা রিটার্ন মান একাধিক ধরণের হতে পারে, তাহলে একটি ইউনিয়ন টাইপ তৈরি করতে একটি পাইপ ( | ) ব্যবহার করুন। এটি অ্যাপস স্ক্রিপ্টে এমন ফাংশনগুলির জন্য সাধারণ যা একটি একক মান বা মানগুলির একটি পরিসর (2D অ্যারে হিসাবে উপস্থাপিত) গ্রহণ করতে পারে।

/**
 * Multiplies an input value (or a range of values) by 2.
 *
 * @param {number|number[][]} input The value or 2D array to multiply.
 * @return {number|number[][]} The result.
 */
function double(input) {
  return Array.isArray(input) ?
      input.map(row => row.map(cell => cell * 2)) :
      input * 2;
}

@overload সহ একাধিক স্বাক্ষর

জটিল স্বাক্ষরযুক্ত ফাংশনগুলির জন্য যেখানে অনুমোদিত প্যারামিটারগুলি একে অপরের উপর নির্ভর করে, আপনি প্রতিটি স্বতন্ত্র স্বাক্ষর সংজ্ঞায়িত করতে @overload ট্যাগ ব্যবহার করতে পারেন। অ্যাপস স্ক্রিপ্ট সম্পাদক আপনি কোন ফাংশনটি কল করছেন তার উপর ভিত্তি করে নির্দিষ্ট ইঙ্গিত প্রদান করতে এগুলি ব্যবহার করে।

/**
 * @overload
 * @param {string} name The name of the property to get.
 * @return {string} The property value.
 */
/**
 * @overload
 * @param {number} index The index of the item to get.
 * @return {object} The item object.
 */
function get(arg) {
  // Implementation that handles both cases
}

গুগল শিটে কাস্টম ফাংশন

যখন আপনি Google Sheets-এর জন্য একটি কাস্টম ফাংশন লেখেন, তখন স্প্রেডশিটের অটোকম্পলিট এবং ফর্মুলা হেল্পারে এটি প্রদর্শিত হওয়ার জন্য আপনাকে @customfunction ট্যাগ ব্যবহার করতে হবে।

গুগল শিটে আপনার কাস্টম ফাংশন ব্যবহার করার সময় ব্যবহারকারীরা যে সহায়ক টেক্সট দেখতে পান তার উৎস হল JSDoc। JSDoc ছাড়া, ব্যবহারকারীরা কেবল ফাংশনের নাম দেখতে পাবেন, যার ফলে ফাংশনটি কী করে বা এর জন্য কোন প্যারামিটার প্রয়োজন তা জানা কঠিন হয়ে পড়বে।

সমর্থিত ট্যাগ এবং UI সীমাবদ্ধতা

যদিও অ্যাপস স্ক্রিপ্ট বেশিরভাগ স্ট্যান্ডার্ড JSDoc ট্যাগ পার্স করে, কাস্টম ফাংশনের জন্য Google Sheets UI-এর কিছু নির্দিষ্ট আচরণ এবং সীমাবদ্ধতা রয়েছে:

  • @customfunction : শীট সূত্র তালিকায় ফাংশনটি প্রদর্শিত হওয়ার জন্য প্রয়োজনীয়।
  • @param : নাম এবং বিবরণ শীট সূত্র সহায়কে প্রদর্শিত হয়।
  • @return : @return ট্যাগে প্রদত্ত বিবরণ Sheets সূত্র সহায়কে প্রদর্শিত হয় না
  • ঐচ্ছিক প্যারামিটার : ঐচ্ছিক প্যারামিটারের জন্য স্ট্যান্ডার্ড JSDoc সিনট্যাক্স (যেমন, [name] অথবা name= ) Sheets UI দ্বারা স্বীকৃত নয়। সূত্র সহায়কে সমস্ত প্যারামিটার প্রয়োজন অনুসারে প্রদর্শিত হবে।
  • ডিফল্ট মান : ডিফল্ট প্যারামিটার মান (যেমন, [name=Value] ) শীট UI তে সমর্থিত নয়।
  • ফর্ম্যাটিং : আপনার বর্ণনায় HTML ট্যাগ এবং প্লেইন টেক্সট লাইন ব্রেক সমর্থিত নয়। Sheets UI বর্ণনাটিকে একটি একক ব্লক টেক্সট হিসেবে প্রদর্শন করে এবং বেশিরভাগ HTML বাদ দেয়।

গুগল শিটের উদাহরণ

/**
 * Calculates a discount.
 *
 * @param {number} price The original price.
 * @param {number} percent The discount percentage (e.g., 0.1 for 10%).
 * @return {number} The price after discount.
 * @customfunction
 */
function calculateDiscount(price, percent) {
  return price * (1 - percent);
}

ব্যবহারকারীরা গুগল শিটে কী দেখেন

যখন একজন ব্যবহারকারী একটি কক্ষে =CALCULATEDISCOUNT( টাইপ করেন, তখন Google Sheets নিম্নলিখিত সহায়ক বাক্সটি প্রদর্শন করে:

গণনা করা হয়েছে

ছাড় গণনা করে।

মূল্য : আসল মূল্য।

শতাংশ : ছাড়ের শতাংশ (যেমন, ১০% এর জন্য ০.১)।

লক্ষ্য করুন যে প্যারামিটারগুলির বিবরণ সরাসরি আপনার JSDoc @param ট্যাগ থেকে আসে।

স্ক্রিপ্ট-স্তরের টীকাগুলি

স্ক্রিপ্ট-ওয়াইড সেটিংস নিয়ন্ত্রণ করতে অ্যাপস স্ক্রিপ্ট অনন্য JSDoc ট্যাগ ব্যবহার করে। এগুলি সাধারণত একটি স্ক্রিপ্ট ফাইলের শীর্ষে স্থাপন করা হয়।

অনুমোদন ট্যাগ

ট্যাগ বিবরণ
@OnlyCurrentDoc অ্যাপস স্ক্রিপ্টকে সেই ধরণের সমস্ত ফাইলের পরিবর্তে শুধুমাত্র বর্তমান ডকুমেন্টের জন্য অনুমোদনের অনুরোধ করতে বলে। আরও বিস্তারিত জানার জন্য [অনুমোদন নির্দেশিকা](/apps-script/guides/services/authorization) দেখুন।
@NotOnlyCurrentDoc লাইব্রেরিতে উত্তরাধিকারসূত্রে প্রাপ্ত @OnlyCurrentDoc টীকা ওভাররাইড করতে ব্যবহৃত হয়।