وظائف TypeScript: كيفية استخدام المعلمات وأنواع الإرجاع

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

تعريف دالة في TypeScript

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

مثال على الوظيفة الأساسية

فيما يلي مثال لوظيفة TypeScript أساسية مع معلمات مكتوبة ونوع إرجاع:

function add(a: number, b: number): number {
  return a + b;
}

const result = add(5, 3); // Output: 8

في هذا المثال، تقبل الدالة add معاملين من نوع number وترجع قيمة من نوع number. وهذا يضمن أن كلًا من المدخلات والمخرجات تتوافق مع الأنواع المتوقعة.

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

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

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

يمكنك تعريف معلمات اختيارية عن طريق إضافة ? بعد اسم المعلمة. لا يلزم توفير معلمات اختيارية عند استدعاء الوظيفة.

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

console.log(greet("Alice")); // Output: Hello, Alice.
console.log(greet("Bob", 25)); // Output: Hello, Bob. You are 25 years old.

في هذا المثال، يعد معامل age اختياريًا. تعمل الوظيفة بشكل صحيح سواء تم توفير معامل age أم لا.

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

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

function multiply(a: number, b: number = 2): number {
  return a * b;
}

console.log(multiply(5)); // Output: 10
console.log(multiply(5, 3)); // Output: 15

في هذا المثال، تحتوي المعلمة b على قيمة افتراضية هي 2. إذا لم يتم توفير أي معلمة ثانية، فسيتم استخدام 2 افتراضيًا.

معلمات الراحة

تسمح لك معلمات الراحة بتمرير عدد متفاوت من الوسائط إلى دالة. يتم تعريفها باستخدام صيغة ....

function sum(...numbers: number[]): number {
  return numbers.reduce((total, num) => total + num, 0);
}

console.log(sum(1, 2, 3, 4)); // Output: 10
console.log(sum(5, 10, 15)); // Output: 30

في هذا المثال، تقبل الدالة sum أي عدد من الوسائط، كلها من نوع number، وترجع مجموعها.

أنواع الإرجاع في TypeScript

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

تحديد أنواع الإرجاع

لتحديد نوع الإرجاع لوظيفة، أضف علامة النقطتين : متبوعة بالنوع بعد قائمة المعلمات.

function isEven(num: number): boolean {
  return num % 2 === 0;
}

console.log(isEven(4)); // Output: true
console.log(isEven(5)); // Output: false

في هذا المثال، تقوم الدالة isEven بإرجاع boolean للإشارة إلى ما إذا كان الرقم المدخل زوجيًا أم لا.

الوظائف التي لا تحتوي على نوع إرجاع

عندما لا تقوم الدالة بإرجاع قيمة، يكون نوع الإرجاع الخاص بها هو void. وهذا مفيد للدوال التي تقوم بإجراء ما دون تقديم نتيجة.

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

logMessage("Hello, TypeScript!"); // Output: Hello, TypeScript!

في هذا المثال، تقوم الدالة logMessage بتسجيل رسالة إلى وحدة التحكم ولا تعيد أي شيء، وبالتالي فإن نوع الإرجاع هو void.

خاتمة

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