Funções em TypeScript
Criação de funções
function saudacao(nome: string): string {
return `Olá, ${nome}!`;
}
Passagem de parâmetros
Parâmetros obrigatórios
function somar(a: number, b: number): number {
return a + b;
}
Parâmetros opcionais
function apresentar(nome: string, idade?: number): string {
return idade
? `${nome}, ${idade} anos`
: nome;
}
Parâmetros com valores padrão
function cumprimentar(nome: string = "visitante"): string {
return `Olá, ${nome}!`;
}
Número indefinido de parâmetros (Rest parameters)
function somarTudo(...numeros: number[]): number {
return numeros.reduce((total, n) => total + n, 0);
}
Valor de retorno
function dobro(x: number): number {
return x * 2;
}
Sobrecarga de funções
function mostrar(valor: number): void;
function mostrar(valor: string): void;
function mostrar(valor: any): void {
console.log(valor);
}
mostrar("Oi");
mostrar(10);
Tipo de função
Definição
type Operacao = (a: number, b: number) => number;
Criação de variáveis com tipo de função
let multiplicar: Operacao = (x, y) => x * y;
Função como parâmetro
function executarOperacao(a: number, b: number, operacao: Operacao): number {
return operacao(a, b);
}
console.log(executarOperacao(4, 5, multiplicar)); // 20
Funções anônimas
const dividir = function (a: number, b: number): number {
return a / b;
};
Funções arrow
const subtrair = (a: number, b: number): number => a - b;
Funções Genéricas
Funções que usam generics para trabalhar com tipos variados.
Exemplo 1: Função que recebe e retorna o mesmo tipo
function echo<T>(arg: T): T {
return arg;
}
Exemplo 2: Função genérica que concatena dois arrays do mesmo tipo
function concatArrays<T>(a: T[], b: T[]): T[] {
return a.concat(b);
}
Exemplo 3: Função genérica que troca os valores de uma tupla
function swap<T, U>(tuple: [T, U]): [U, T] {
return [tuple[1], tuple[0]];
}