كيفية استخدام الدوال في دليل المبتدئين لـ TypeScript

تُعد الوظائف لبنة أساسية في TypeScript، كما هي الحال في JavaScript. تعمل TypeScript على توسيع وظائف JavaScript بميزات إضافية مثل التعليقات التوضيحية للنوع، والتي تعمل على تحسين وضوح التعليمات البرمجية ومنع الأخطاء. سيرشدك هذا الدليل للمبتدئين إلى كيفية استخدام الوظائف في TypeScript.

تعريف الوظائف

في TypeScript، يمكنك تعريف وظائف تمامًا كما هو الحال في JavaScript ولكن مع تعليقات توضيحية اختيارية للنوع لتحديد أنواع المعلمات وقيم الإرجاع.

تعريف الوظيفة الأساسية

إليك كيفية تعريف وظيفة بسيطة في TypeScript:

function greet(name: string): string {
  return "Hello, " + name;
}

في هذا المثال، name هو معلمة من نوع string، وتقوم الدالة بإرجاع قيمة من نوع string.

معلمات الوظيفة وأنواع الإرجاع

يتيح لك TypeScript تحديد أنواع معلمات الوظيفة وقيم الإرجاع، مما يساعد على ضمان استخدام الوظيفة بشكل صحيح.

وظيفة مع المعلمات

فيما يلي دالة تأخذ معاملين وترجع مجموعهما:

function add(x: number, y: number): number {
  return x + y;
}

في هذه الدالة، كل من x وy من نوع number، وترجع الدالة number.

الوظائف التي لا تحتوي على قيمة إرجاع

لا تحتاج جميع الوظائف إلى إرجاع قيمة. يتم إعلان الوظائف التي لا تحتوي على قيمة إرجاع بنوع الإرجاع void. تقوم هذه الوظائف بتنفيذ إجراءات ولكنها لا تنتج نتيجة.

مثال على عدم وجود قيمة إرجاع

function logMessage(message: string): void {
  console.log(message);
}

في هذا المثال، يقوم الأمر logMessage بطباعة message في وحدة التحكم ولكنه لا يقوم بإرجاع أي قيمة.

المعلمات الاختيارية والافتراضية

يدعم TypeScript المعلمات الاختيارية والافتراضية، مما يسمح لك بإنشاء وظائف أكثر مرونة.

المعلمات الاختيارية

يتم تحديد المعلمات الاختيارية عن طريق إضافة ? بعد اسم المعلمة:

function greet(name: string, greeting?: string): string {
  if (greeting) {
    return greeting + ", " + name;
  }
  return "Hello, " + name;
}

في هذا المثال، greeting هو معلمة اختيارية يمكن حذفها عند استدعاء الوظيفة.

المعلمات الافتراضية

المعلمات الافتراضية لها قيمة افتراضية إذا لم يتم توفير أي قيمة:

function greet(name: string, greeting: string = "Hello"): string {
  return greeting + ", " + name;
}

إذا لم يتم توفير greeting، فسيتم تعيينه افتراضيًا على "Hello".

التحميل الزائد للوظائف

يدعم TypeScript التحميل الزائد للوظيفة، مما يسمح لك بتعريف توقيعات وظيفة متعددة لنفس اسم الوظيفة:

function greet(name: string): string;
function greet(name: string, age: number): string;
function greet(name: string, age?: number): string {
  if (age !== undefined) {
    return `Hello, ${name}. You are ${age} years old.`;
  }
  return `Hello, ${name}.`;
}

في هذا المثال، يمكن استدعاء greet باستخدام معلمة واحدة أو معلمتين.

وظائف السهم

توفر وظائف السهم صيغة نحوية أقصر لكتابة الوظائف ولا تحتوي على سياق this خاص بها:

const add = (x: number, y: number): number => x + y;

يوضح هذا المثال كيفية تعريف دالة سهم تقوم بإضافة رقمين.

خاتمة

تُعد الوظائف في TypeScript طريقة فعّالة لتغليف التعليمات البرمجية وإعادة استخدامها. من خلال استخدام التعليقات التوضيحية للأنواع والمعلمات الاختيارية والافتراضية وتحميل الوظائف ووظائف الأسهم، يمكنك كتابة تعليمات برمجية أكثر قوة وقابلية للصيانة. سيساعدك فهم هذه الأساسيات على الاستفادة الكاملة من إمكانيات TypeScript في مشاريعك.