TypeScript pilefunktion
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:
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: