ES6-versie van TypeScript biedt een pijlfunctie die de afkorting syntaxis voor het definiëren van de anonieme functie, dat wil zeggen voor functie-expressies. Het functie-trefwoord wordt weggelaten. We kunnen het een dikke pijl noemen (omdat -> een dunne pijl is en => een ' vet ' pijl). Het wordt ook wel een Lambda-functie . De pijlfunctie heeft lexicale scoping van ' dit ' trefwoord.
De motivatie voor de pijlfunctie is:
- Wanneer we de functie niet hoeven te blijven typen.
- Het geeft lexicaal de betekenis van dit trefwoord weer.
- Het geeft lexicaal de betekenis van argumenten weer.
Syntaxis
We kunnen de syntaxis van een Arrow-functie in drie delen splitsen:
(parameter1, parameter2, ..., parameterN) => expression;
Als we gebruik maken van de dikke pijl (=>) notatie, het is niet nodig om de functie trefwoord. Parameters worden tussen haakjes () doorgegeven en de functie-expressie staat tussen accolades {}.
Er zijn twee manieren om een functie te schrijven in de ES5- en ES6-coderingsstijl.
// 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!`; }
Pijlfunctie met parameter
Het volgende programma is een voorbeeld van een pijlfunctie met parameters.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
In het bovenstaande voorbeeld is de som is een pijlfunctie, ' a: nummer, b: nummer ' is een parametertype, ' : nummer ' is het retourtype, de pijlnotatie => scheidt de functieparameter en de functietekst.
Na het compileren van het bovenstaande TypeScript-programma is de bijbehorende JavaScript-code:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Uitgang:
Pijlfunctie zonder parameter
Het volgende programma is een voorbeeld van een pijlfunctie zonder parameters.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Uitgang:
Als in de pijlfunctie de hoofdtekst van de functie uit slechts één instructie bestaat, zijn de accolades en het return-trefwoord niet nodig. We kunnen het begrijpen uit het onderstaande voorbeeld.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Uitgang:
Pijlfunctie in een klas
We kunnen de pijlfunctie als eigenschap in een klasse opnemen. Het volgende voorbeeld helpt om het duidelijker te begrijpen.
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();
Uitgang: