وظيفة سهم TypeScript
يوفر إصدار ES6 من TypeScript وظيفة السهم وهي الاختزال بناء الجملة لتعريف الوظيفة المجهولة، أي لتعبيرات الوظيفة. إنه يحذف الكلمة الأساسية للوظيفة. يمكننا أن نسميه سهمًا سمينًا (لأن -> سهم رفيع و=> يمثل ' سمين ' سهم). ويسمى أيضا أ وظيفة لامدا . تحتوي وظيفة السهم على نطاق معجمي لـ ' هذا 'الكلمة الرئيسية.
الدافع لوظيفة السهم هو:
- عندما لا نحتاج إلى الاستمرار في وظيفة الكتابة.
- إنه يجسد بشكل معجمي معنى هذه الكلمة الرئيسية.
- إنه يجسد بشكل معجمي معنى الحجج.
بناء الجملة
يمكننا تقسيم بناء جملة دالة السهم إلى ثلاثة أجزاء:
(parameter1, parameter2, ..., parameterN) => expression;
إذا استخدمنا سهم سمين (=>) التدوين، ليست هناك حاجة لاستخدام وظيفة الكلمة الرئيسية. يتم تمرير المعلمات بين قوسين ()، ويتم وضع تعبير الدالة داخل قوسين متعرجين {}.
هناك طريقتان لكتابة دالة بأسلوب الترميز ES5 وES6.
// ES5: Without arrow function var getResult = function(username, points) { return username + ' scored ' + points + ' points!'; }; // ES6: With arrow function var getResult = (username: string, points: number): string => { return `${ username } scored ${ points } points!`; } وظيفة السهم مع المعلمة
البرنامج التالي هو مثال لوظيفة السهم مع المعلمات.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50 في المثال أعلاه، مجموع هي دالة سهمية،' أ: العدد، ب: العدد 'هو نوع المعلمة،' : رقم ' هو نوع الإرجاع، وتدوين السهم => يفصل بين معلمة الوظيفة ونص الوظيفة.
بعد تجميع برنامج TypeScript أعلاه، فإن كود JavaScript المقابل هو:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50 انتاج:
دالة السهم بدون معلمة
البرنامج التالي هو مثال لوظيفة السهم بدون معلمات.
let Print = () => console.log('Hello JavaTpoint!'); Print();
انتاج:
في دالة السهم، إذا كان نص الدالة يتكون من عبارة واحدة فقط، فلن تكون هناك حاجة للأقواس المتعرجة والكلمة الأساسية return. يمكننا أن نفهم ذلك من المثال أدناه.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
انتاج:
وظيفة السهم في الفصل
يمكننا تضمين وظيفة السهم كخاصية في الفصل. المثال التالي يساعد على فهم ذلك بشكل أكثر وضوحا.
class Student { studCode: number; studName: string; constructor(code: number, name: string) { this.studName = name; this.studCode = code; } showDetail = () => console.log('Student Code: ' + this.studCode + '
Student Name: ' + this.studName) } let stud = new Student(101, 'Abhishek Mishra'); stud.showDetail(); انتاج: