Funções - TypeScript

Definindo Funções

Em JavaScript, funções são definidas com a palavra-chave function. Veja o exemplo:

function add(a, b) {
    return a + b;
}
// utilizando a função
let result1 = add(1, 2); // resultado: 3
let result2 = add("1", "2"); // resultado: 12

Em TypeScript, as funções também são definidas com a palavra-chave function, mas ele oferece funcionalidades adicionais. Em especial, é possível definir os tipos dos parâmetros e o tipo de retorno da função.

Parâmetros da Função

Uma função pode ter parâmetros, que são declarados após o nome da função, dentro dos parênteses, separados por vírgulas. Após o nome do parâmetro, o tipo pode ser especificado com dois pontos:

// definição da função
function add(a: number, b: number) {
    let result = a + b;
    console.log(result);
}
// chamada da função
add(20, 30); // 50
add(10, 15); // 25

Como os parâmetros têm o tipo number, ao tentar chamar a função com parâmetros do tipo string:

add("1", "2");

O compilador TypeScript lançará um erro, pois os parâmetros devem ser do tipo number, e não string.

Além de usar os parâmetros passados, uma função também pode acessar variáveis globais definidas fora dela:

let ratio: number = 1.5;

function add(a: number) {
    let result = a * ratio;
    console.log(result);
}

add(20); // 30
add(10); // 15

Retorno da Função

Uma função pode retornar um valor de um tipo específico, chamado de "tipo de retorno" da função. O tipo de retorno é especificado após os parâmetros, usando dois pontos:

function add(a: number, b: number): number {
    return a + b;
}
let result = add(1, 2);
console.log(result);

Neste exemplo, a função retorna um valor do tipo number.

Se a função não retornar nada, o tipo void deve ser utilizado:

function add(a: number, b: number): void {
    console.log(a + b);
}
add(10, 20);

Parâmetros Opcionais

Em TypeScript, o número de argumentos passados para uma função deve corresponder exatamente ao número de parâmetros definidos:

function getName(firstName: string, lastName: string) {
    return firstName + " " + lastName;
}

let name1 = getName("John", "Wick");
let name2 = getName("John", "Wick", "BabaYaga");  // erro: muitos parâmetros
let name3 = getName("John");  // erro: poucos parâmetros

Para permitir que uma função receba um número variável de argumentos, alguns parâmetros podem ser marcados como opcionais, usando o símbolo ?. Parâmetros opcionais devem ser definidos após os obrigatórios:

function getName(firstName: string, lastName?: string) {
    if (lastName)
        return firstName + " " + lastName;
    else
        return firstName;
}

let name1 = getName("John", "Wick");
console.log(name1); // John Wick
let name2 = getName("John");
console.log(name2); // John

No segundo exemplo, como foi passado apenas o primeiro nome, o segundo parâmetro será undefined. A função então verifica se o valor foi fornecido antes de utilizá-lo.

Valores Padrão dos Parâmetros

Os parâmetros também podem ter valores padrão. Se um valor não for passado ao chamar a função, o valor padrão será usado:

function getName(firstName: string, lastName: string = "Doe") {
    return firstName + " " + lastName;
}

let name1 = getName("John", "Wick"); 
console.log(name1); // John Wick
let name2 = getName("John");
console.log(name2); // John Doe

O valor padrão de um parâmetro pode ser o resultado de uma expressão:

function defaultLastName(): string {
    return "Smith";
}

function getName(firstName: string, lastName: string = defaultLastName()) {
    return firstName + " " + lastName;
}

let name1 = getName("Tom");
console.log(name1); // Tom Smith
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com