פונקציית חץ 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(); תְפוּקָה: