ЕС6 верзија ТипеСцрипт-а пружа функцију стрелице која је стенографија синтаксу за дефинисање анонимне функције, односно за изразе функције. Изоставља кључну реч функције. Можемо је назвати дебела стрелица (јер је -> танка стрелица и => је ' дебео ' стрелац). Такође се назива а Ламбда функција . Функција стрелице има лексички опсег од ' ово ' кључна реч.
Мотивација за функцију стрелице је:
- Када не треба да куцамо функцију.
- Лексички обухвата значење ове кључне речи.
- Лексички обухвата значење аргумената.
Синтакса
Синтаксу функције стрелице можемо поделити на три дела:
(parameter1, parameter2, ..., parameterN) => expression;
Ако користимо дебела стрелица (=>) нотације, нема потребе да се користи функција кључна реч. Параметри се прослеђују у заградама (), а израз функције је затворен у витичасте заграде {}.
Постоје два начина писања функције у ЕС5 и ЕС6 стилу кодирања.
колико има филмова о немогућој мисији
// 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!`; }
Функција стрелице са параметром
Следећи програм је пример функције стрелице са параметрима.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
У горњем примеру, сума је функција стрелице, ' а: број, б: број ' је тип параметра,' : број ' је тип повратка, ознака стрелице => раздваја параметар функције и тело функције.
Након компајлирања горњег програма ТипеСцрипт, одговарајући ЈаваСцрипт код је:
вук против лисице
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Излаз:
Функција стрелице без параметра
Следећи програм је пример функције стрелице без параметара.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Излаз:
У функцији стрелице, ако се тело функције састоји од само једне наредбе, тада нису потребне витичасте заграде и кључна реч ретурн. То можемо разумети из примера у наставку.
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();
Излаз: