ES6 version af TypeScript giver en pilefunktion, som er stenografi syntaks til at definere den anonyme funktion, altså for funktionsudtryk. Den udelader funktionsnøgleordet. Vi kan kalde det fed pil (fordi -> er en tynd pil og => er en ' fed ' pil). Det kaldes også en Lambda funktion . Pilefunktionen har leksikalsk omfang af ' det her ' søgeord.
Motivationen for pilfunktionen er:
- Når vi ikke behøver at blive ved med at skrive funktion.
- Det fanger leksikalsk betydningen af dette søgeord.
- Det fanger leksikalsk betydningen af argumenter.
Syntaks
Vi kan opdele syntaksen for en pilefunktion i tre dele:
(parameter1, parameter2, ..., parameterN) => expression;
Hvis vi bruger fedtpil (=>) notation, er der ingen grund til at bruge fungere søgeord. Parametre sendes i parentes (), og funktionsudtrykket er indesluttet i de krøllede parenteser {}.
Der er to måder at skrive en funktion på i ES5- og ES6-kodningsstil.
// 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!`; }
Pilefunktion med parameter
Følgende program er et eksempel på pilefunktion med parametre.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
I ovenstående eksempel er sum er en pilefunktion, ' a: tal, b: tal ' er en parametertype, ' : nummer ' er returtypen, pilens notation => adskiller funktionsparameteren og funktionslegemet.
Efter kompilering af ovenstående TypeScript-program er den tilsvarende JavaScript-kode:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Produktion:
Pilefunktion uden parameter
Følgende program er et eksempel på pilefunktion uden parametre.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Produktion:
sjakal vs ulv
I pilefunktionen, hvis funktionsteksten kun består af én sætning, er der ikke behov for de krøllede parenteser og nøgleordet retur. Vi kan forstå det fra nedenstående eksempel.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Produktion:
Pilefunktion i en klasse
Vi kan inkludere pilefunktionen som en egenskab i en klasse. Følgende eksempel hjælper med at forstå det mere klart.
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();
Produktion: