ES6 версията на TypeScript предоставя функция със стрелка, която е стенография синтаксис за дефиниране на анонимната функция, т.е. за функционални изрази. Пропуска функционалната ключова дума. Можем да я наречем дебела стрелка (защото -> е тънка стрелка и => е ' дебел ' стрелка). Нарича се още а Ламбда функция . Функцията стрелка има лексикален обхват на ' това ' ключова дума.
Мотивацията за функцията стрелка е:
- Когато не е необходимо да продължим да пишем функция.
- Той лексикално улавя значението на тази ключова дума.
- Той лексикално улавя значението на аргументите.
Синтаксис
Можем да разделим синтаксиса на функция Arrow на три части:
(parameter1, parameter2, ..., parameterN) => expression;
Ако използваме дебела стрелка (=>) нотация, няма нужда да използвате функция ключова дума. Параметрите се предават в скобите (), а изразът на функцията е ограден във фигурните скоби {}.
Има два начина за писане на функция в стила на кодиране ES5 и 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!`; }
Функция стрелка с параметър
Следващата програма е пример за функция стрелка с параметри.
печат на масив в java
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
В горния пример, сума е функция със стрелка, ' a: число, b: число ' е тип параметър, ' : номер ' е типът на връщане, нотацията със стрелка => разделя параметъра на функцията и тялото на функцията.
След компилиране на горната TypeScript програма, съответният JavaScript код е:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Изход:
Функция стрелка без параметър
Следващата програма е пример за функция със стрелка без параметри.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Изход:
Във функцията стрелка, ако тялото на функцията се състои само от един оператор, тогава няма нужда от фигурни скоби и ключова дума return. Можем да го разберем от примера по-долу.
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Изход:
Функция стрелка в клас
Можем да включим функцията стрелка като свойство в клас. Следният пример помага да се разбере по-ясно.
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();
Изход: