גרסת 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();
תְפוּקָה: