ES6 verzia TypeScript poskytuje funkciu šípky, ktorá je skratka syntax na definovanie anonymnej funkcie, t.j. pre funkčné výrazy. Vynecháva kľúčové slovo function. Môžeme to nazvať tučná šípka (pretože -> je tenká šípka a => je ' tuku 'šípka). Nazýva sa aj a Funkcia lambda . Funkcia šípky má lexikálny rozsah ' toto kľúčové slovo.
Motivácia pre funkciu šípky je:
- Keď nepotrebujeme držať funkciu písania.
- Lexicky vystihuje význam tohto kľúčového slova.
- Lexikálne zachytáva význam argumentov.
Syntax
Syntax funkcie Arrow môžeme rozdeliť na tri časti:
(parameter1, parameter2, ..., parameterN) => expression;
Ak použijeme tučná šípka (=>) notáciu, nie je potrebné používať funkciu kľúčové slovo. Parametre sa odovzdávajú v zátvorkách () a výraz funkcie je uzavretý v zložených zátvorkách {}.
Existujú dva spôsoby zápisu funkcie v štýle kódovania ES5 a 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!`; }
Funkcia šípky s parametrom
Nasledujúci program je príkladom funkcie šípky s parametrami.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
Vo vyššie uvedenom príklade súčet je funkcia šípky, a: číslo, b: číslo ' je typ parametra, ' : číslo ' je návratový typ, šípkový zápis => oddeľuje parameter funkcie a telo funkcie.
Po kompilácii vyššie uvedeného programu TypeScript je zodpovedajúci kód JavaScript:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Výkon:
Funkcia šípok bez parametra
Nasledujúci program je príkladom funkcie šípky bez parametrov.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Výkon:
Ak vo funkcii šípka telo funkcie pozostáva len z jedného príkazu, potom nie sú potrebné zložené zátvorky a kľúčové slovo return. Môžeme to pochopiť z nižšie uvedeného príkladu.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Výkon:
Funkcia šípok v triede
Funkciu šípky môžeme zahrnúť ako vlastnosť do triedy. Nasledovný príklad vám pomôže lepšie to pochopiť.
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();
Výkon: