Funkce TypeScript Arrow
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: