La versió ES6 de TypeScript proporciona una funció de fletxa que és la taquigrafia sintaxi per definir la funció anònima, és a dir, per a expressions de funció. Omet la paraula clau de funció. La podem anomenar fletxa grossa (perquè -> és una fletxa fina i => és un ' greix 'fletxa). També s'anomena a Funció lambda . La funció de fletxa té un àmbit lèxic de ' això ' paraula clau.
La motivació de la funció de fletxa és:
- Quan no necessitem seguir escrivint la funció.
- Capta lèxicament el significat d'aquesta paraula clau.
- Capta lèxicament el significat dels arguments.
Sintaxi
Podem dividir la sintaxi d'una funció de fletxa en tres parts:
(parameter1, parameter2, ..., parameterN) => expression;
Si fem servir el fletxa grossa (=>) notació, no cal utilitzar el funció paraula clau. Els paràmetres es passen entre claudàtors () i l'expressió de la funció s'inclou dins dels claudàtors {}.
Hi ha dues maneres d'escriure una funció a l'estil de codificació 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!`; }
Funció de fletxa amb paràmetre
El programa següent és un exemple de funció de fletxa amb paràmetres.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
En l'exemple anterior, el suma és una funció de fletxa, ' a: nombre, b: nombre ' és un tipus de paràmetre,' : nombre ' és el tipus de retorn, la notació de fletxa => separa el paràmetre de la funció i el cos de la funció.
hashtable versus hashmap
Després de compilar el programa TypeScript anterior, el codi JavaScript corresponent és:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Sortida:
Funció de fletxa sense paràmetre
El programa següent és un exemple de funció de fletxa sense paràmetres.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Sortida:
llista de matrius ordenada
A la funció de fletxa, si el cos de la funció només consta d'una instrucció, no calen els claudàtors ni la paraula clau de retorn. Ho podem entendre a partir de l'exemple següent.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Sortida:
Funció de fletxa en una classe
Podem incloure la funció de fletxa com a propietat en una classe. L'exemple següent ajuda a entendre-ho més clarament.
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();
Sortida: