Funções da linguagem de pro­gra­ma­ção Ty­peS­cript são blocos de códigos que permitem a definição de tipos de pa­râ­me­tros e de valores de retorno, o que resulta na detecção an­te­ci­pada de erros e aumenta a qualidade das apli­ca­ções em de­sen­vol­vi­mento. Ou seja, Ty­peS­cript functions garantem que os tipos de dados corretos sejam uti­li­za­dos.

O que são Ty­peS­cript functions?

Funções são um dos com­po­nen­tes centrais da linguagem de pro­gra­ma­ção Ty­peS­cript. Ty­peS­cript functions se as­se­me­lham às funções do Ja­vaS­cript, mas possuem a vantagem adicional de su­por­ta­rem tipagens estáticas. Na tipagem estática, tipos de dados para variáveis, pa­râ­me­tros e valores de retorno são definidos, no código, durante a fase de design (tempo de com­pi­la­ção), não podendo ser alterados no processo de execução. Isso ajuda a reduzir erros no ambiente de produção.

Outra im­por­tante ca­rac­te­rís­tica das funções do Ty­peS­cript é a fle­xi­bi­li­dade delas. Ty­peS­cript functions podem ter pa­râ­me­tros opcionais e valores padrão para pa­râ­me­tros, o que facilita a aplicação delas a di­fe­ren­tes tipos de códigos. Assim, elas podem ser usadas no pro­ces­sa­mento de dados, em in­te­ra­ções com in­ter­fa­ces de usuário, na pro­gra­ma­ção as­sín­crona e em outras situações. Ainda, funções do Ty­peS­cript pos­si­bi­li­tam a definição de so­bre­car­gas, que oferecem di­fe­ren­tes fun­ci­o­na­li­da­des a depender dos valores de entrada.

Além da de­cla­ra­ção de funções tra­di­ci­o­nais, o Ty­peS­cript também suporta o uso de funções de seta, de sintaxe mais curta e am­pla­mente uti­li­za­das em práticas modernas do de­sen­vol­vi­mento em Ja­vaS­cript. Por esses e outros motivos, as funções do Ty­peS­cript são con­si­de­ra­das es­sen­ci­ais nos códigos de­sen­vol­vi­dos com essa linguagem de pro­gra­ma­ção, já que elas aumentam a segurança e a le­gi­bi­li­dade desses códigos, ao mesmo tempo em que oferecem fle­xi­bi­li­dade e adap­ta­bi­li­dade para atender às mais diversas ne­ces­si­da­des.

Sintaxe de Ty­peS­cript functions

A sintaxe das funções do Ty­peS­cript é se­me­lhante à sintaxe das funções do Ja­vaS­cript, já que Ty­peS­cript é uma linguagem de pro­gra­ma­ção que estende o Ja­vaS­cript. Funções do Ty­peS­cript têm de ser de­li­mi­ta­das por chaves { }, dentro das quais a lógica da função cor­res­pon­dente deve ser im­ple­men­tada. Observe a estrutura base de uma função do Ty­peS­cript:

function functionName(parameter1: type, parameter2: type): returnType {
    // Function Code
    return result; // (optional)
}
ty­pes­cript
  • function: Esta palavra-chave marca o início da de­cla­ra­ção da função.
  • functionName: Este é o nome da função. Opte por um nome des­cri­tivo, que reflita a tarefa da função.
  • parameter1, parameter2: Estes são os pa­râ­me­tros que a função demanda. Cada parâmetro é iden­ti­fi­cado por um nome e pelo tipo de dado esperado (anotação de tipo).
  • returnType: Este é o tipo de dado que a função retorna. Es­pe­ci­fi­que void para a função não retornar nenhum valor.
  • return result: Parâmetro opcional, ne­ces­sá­rio quando a função tiver de retornar um valor.

Você pode chamar uma função do Ty­peS­cript usando o nome dessa mesma função seguido por pa­rên­te­ses. Dentro dos pa­rên­te­ses, você deve inserir os ar­gu­men­tos (valores de entrada) para a função, caso ela demande pa­râ­me­tros.

functionName(argument1, argument2, ...);
ty­pes­cript

Exemplos de aplicação de Ty­peS­cript functions

Ty­peS­cript functions são ex­tre­ma­mente versáteis, sendo capazes de realizar cálculos, operações e fluxos complexos em apli­ca­ções.

Funções anônimas

Funções anônimas, na linguagem de pro­gra­ma­ção Ty­peS­cript, são funções que não possuem um nome e, portanto, podem ser usadas di­re­ta­mente em ex­pres­sões ou como ar­gu­men­tos para outras funções. O uso de funções anônimas é vantajoso quando estas são ne­ces­si­ta­das em apenas um ponto es­pe­cí­fico do código, já que elas não exigem a atri­bui­ção de um nome.

var greet = function(name) {
    return "Hello, " + name + "!";
};
var message = greet("John");
console.log(message); // Output: "Hello, John!"
ty­pes­cript

No exemplo, a função anônima é ar­ma­ze­nada na variável greet e chamada pos­te­ri­or­mente para criar uma mensagem de saudação per­so­na­li­zada para o nome John.

Funções anônimas podem incluir funções lambda, também chamadas de funções de seta.

const add = (a: number, b: number) => a + b;
const result = add(3, 5); // Output: 8
ty­pes­cript

Observe, acima, uma função anônima que realiza a adição de dois números. Ela é atribuída à variável add e, em seguida, chamada.

Pa­râ­me­tros default

Pa­râ­me­tros default (também co­nhe­ci­dos como pa­râ­me­tros padrão ou pa­râ­me­tros pre­de­fi­ni­dos) permitem que você defina Ty­peS­cript functions de modo a terem valores padrão para os pa­râ­me­tros. Se uma função for chamada e nenhum valor for fornecido para um parâmetro, o valor padrão será utilizado. Veja:

function greet(name: string = "World") {
    return "Hello, " + name + "!";
}
console.log(greet()); // Output: "Hello, World!"
console.log(greet("John")); // Output: "Hello, John!"
ty­pes­cript

No código, a função greet ganha o valor padrão World para o parâmetro name. Assim, se nenhum valor for fornecido para name na chamada da função, o valor padrão de­ter­mi­nado será au­to­ma­ti­ca­mente utilizado.

Pa­râ­me­tros rest

Na linguagem de pro­gra­ma­ção Ty­peS­cript, pa­râ­me­tros rest (também co­nhe­ci­dos como ope­ra­do­res de rest ou sintaxes de parâmetro rest), são capazes de coletar um número in­de­fi­nido de ar­gu­men­tos em uma função, como um array Ty­peS­cript. Eles são úteis para a escrita de funções que devem lidar com uma quan­ti­dade variável de ar­gu­men­tos.

function sum(...numbers: number[]): number {
    let total = 0;
    for (const num of numbers) {
        total += num;
    }
    return total;
}
console.log(sum(1, 2, 3, 4, 5)); // Output: 15
ty­pes­cript

Nesse exemplo, a função sum coleta uma quan­ti­dade ar­bi­trá­ria de números (com o parâmetro rest numbers) e as adiciona para calcular a soma total. Você poderia passar quantos números desejasse, já que a função é preparada para con­si­de­rar todos eles.

So­bre­car­gas

Ty­peS­cript functions com overloads (so­bre­car­gas de função) são usadas para definir múltiplas de­cla­ra­ções de função de mesmo nome, mas com di­fe­ren­tes tipos de pa­râ­me­tros ou de valores de retorno. Isso pos­si­bi­lita que o Ty­peS­cript selecione au­to­ma­ti­ca­mente a de­cla­ra­ção correta da função, baseando-se nos ar­gu­men­tos passados e re­a­li­zando as ve­ri­fi­ca­ções de tipo cor­res­pon­den­tes.

function concatenate(a: string, b: string): string;
function concatenate(a: number, b: number): string;
function concatenate(a: any, b: any): string {
    return a.toString() + b.toString();
}
console.log(concatenate("Hello, ", "World")); // Output: "Hello, World"
console.log(concatenate(3, 5)); // Output: "35"
ty­pes­cript

No exemplo acima, ob­ser­va­mos duas so­bre­car­gas da função concatenate. A primeira aceita duas strings e a segunda aceita dois números. A im­ple­men­ta­ção real da função converte os ar­gu­men­tos for­ne­ci­dos em strings e os concatena. A linguagem de pro­gra­ma­ção Ty­peS­cript seleciona au­to­ma­ti­ca­mente a so­bre­carga adequada, com base nos ar­gu­men­tos for­ne­ci­dos, e realiza as ve­ri­fi­ca­ções de tipo ne­ces­sá­rias.

So­bre­car­gas de função são es­pe­ci­al­mente úteis para o de­sen­vol­vi­mento de APIs ou bi­bli­o­te­cas. Em ambos os casos, é im­por­tante que funções do Ty­peS­cript sejam escritas de forma simples e sem erros, in­de­pen­den­te­mente do tipo de parâmetro que os usuários virão a fornecer.

Ir para o menu principal