Versiunea ES6 a TypeScript oferă o funcție săgeată care este stenografie sintaxă pentru definirea funcției anonime, adică pentru expresiile funcției. Omite cuvântul cheie de funcție. O putem numi săgeată grasă (pentru că -> este o săgeată subțire și => este un ' gras ' săgeată). Se mai numește și a Funcția lambda . Funcția săgeată are domeniul lexical de „ acest ' cheie cheie.
Motivația pentru funcția săgeată este:
- Când nu trebuie să continuăm să tastăm.
- Captează lexical sensul acestui cuvânt cheie.
- Captează lexical sensul argumentelor.
Sintaxă
Putem împărți sintaxa unei funcții Arrow în trei părți:
(parameter1, parameter2, ..., parameterN) => expression;
Dacă folosim săgeată grasă (=>) notație, nu este nevoie să utilizați funcţie cuvânt cheie. Parametrii sunt trecuți între paranteze (), iar expresia funcției este inclusă între paranteze {}.
Există două moduri de a scrie o funcție în stilul de codare ES5 și 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!`; }
Funcția săgeată cu parametru
Următorul program este un exemplu de funcție săgeată cu parametri.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
În exemplul de mai sus, sumă este o funcție săgeată, ' a: număr, b: număr ' este un tip de parametru, ' : număr ' este tipul de returnare, notația săgeată => separă parametrul funcției și corpul funcției.
După compilarea programului TypeScript de mai sus, codul JavaScript corespunzător este:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Ieșire:
Funcția săgeată fără parametru
Următorul program este un exemplu de funcție săgeată fără parametri.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Ieșire:
În funcția săgeată, dacă corpul funcției constă dintr-o singură instrucțiune, atunci nu este nevoie de paranteze și cuvântul cheie return. O putem înțelege din exemplul de mai jos.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Ieșire:
Funcția săgeată într-o clasă
Putem include funcția săgeată ca proprietate într-o clasă. Următorul exemplu vă ajută să înțelegeți mai clar.
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();
Ieșire: