A versão ES6 do TypeScript fornece uma função de seta que é a forma abreviada sintaxe para definir a função anônima, ou seja, para expressões de função. Ele omite a palavra-chave da função. Podemos chamá-la de seta gorda (porque -> é uma seta fina e => é um ' gordo ' seta). Também é chamado de Função Lambda . A função arrow tem escopo léxico de ' esse 'palavra-chave.
A motivação para a função de seta é:
- Quando não precisamos continuar digitando function.
- Ele captura lexicamente o significado desta palavra-chave.
- Ele captura lexicamente o significado dos argumentos.
Sintaxe
Podemos dividir a sintaxe de uma função Arrow em três partes:
declaração de caso verilog
(parameter1, parameter2, ..., parameterN) => expression;
Se usarmos o seta gorda (=>) notação, não há necessidade de usar a notação função palavra-chave. Os parâmetros são passados entre colchetes () e a expressão da função é colocada entre colchetes {}.
Existem duas maneiras de escrever uma função no estilo de codificação ES5 e 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!`; }
Função de seta com parâmetro
O programa a seguir é um exemplo de função de seta com parâmetros.
let sum = (a: number, b: number): number => { return a + b; } console.log(sum(20, 30)); //returns 50
No exemplo acima, o soma é uma função de seta, ' a: número, b: número 'é um tipo de parâmetro,' : número 'é o tipo de retorno, a notação de seta => separa o parâmetro da função e o corpo da função.
Depois de compilar o programa TypeScript acima, o código JavaScript correspondente é:
let sum = (a, b) => { return a + b; }; console.log(sum(20, 30)); //returns 50
Saída:
Função de seta sem parâmetro
O programa a seguir é um exemplo de função de seta sem parâmetros.
let Print = () => console.log('Hello JavaTpoint!'); Print();
Saída:
Na função de seta, se o corpo da função consistir em apenas uma instrução, então não há necessidade de chaves e da palavra-chave return. Podemos entendê-lo a partir do exemplo abaixo.
substituição de string java
let sum = (a: number, b: number) => a + b; console.log('SUM: ' +sum(5, 15));
Saída:
Função de seta em uma classe
Podemos incluir a função arrow como uma propriedade em uma classe. O exemplo a seguir ajuda a entendê-lo com mais clareza.
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();
Saída: