ES6 verze TypeScript poskytuje funkci šipky, která je těsnopis syntaxe pro definování anonymní funkce, tj. pro funkční výrazy. Vynechává klíčové slovo function. Můžeme tomu říkat tlustá šipka (protože -> je tenká šipka a => je ' Tlustý ' Šíp). Nazývá se také a Funkce lambda . Funkce šipky má lexikální rozsah ' tento klíčové slovo.
Motivace pro funkci šipky je:
- Když nepotřebujeme neustále psát.
- Lexicky zachycuje význam tohoto klíčového slova.
- Lexicky zachycuje význam argumentů.
Syntax
Syntaxi funkce Arrow můžeme rozdělit na tři části:
(parameter1, parameter2, ..., parameterN) => expression;
Pokud použijeme tlustá šipka (=>) notace, není třeba používat funkce klíčové slovo. Parametry se předávají v hranatých závorkách () a výraz funkce je uzavřen ve složených závorkách {}.
Existují dva způsoby zápisu funkce ve stylu kódování 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!`; }
Funkce šipky s parametrem
Následující program je příkladem funkce šipky s parametry.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
Ve výše uvedeném příkladu je součet je funkce šipky, a: číslo, b: číslo ' je typ parametru, ' : číslo ' je návratový typ, označení šipky => odděluje parametr funkce a tělo funkce.
Po zkompilování výše uvedeného programu TypeScript je odpovídající kód JavaScript:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Výstup:
Funkce šipky bez parametru
Následující program je příkladem funkce šipky bez parametrů.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Výstup:
Pokud se ve funkci šipky skládá tělo funkce pouze z jednoho příkazu, nejsou potřeba složené závorky a klíčové slovo return. Můžeme to pochopit z níže uvedeného příkladu.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Výstup:
Funkce šipky ve třídě
Funkci šipky můžeme zahrnout jako vlastnost do třídy. Následující příklad pomůže tomu jasněji porozumět.
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ýstup: