Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

É possivel definir metodos com mesmo nome, e com parametros diferentes

Essa é uma prática comum em linguagens como java /c# Onde eu posso criar um método

public void x(int a, String b, boolean c){}

e

public void x(String b)

e ainda

public void x(int a, boolean c){}

Isso também torna de certa forma os parametros opcioinais, com um pouco mais de trabalho, porém a vantagem aqui é que nao tenho o problema de ter sempre que passar eles no final do método. Minha pergunta é, o TS tem algo que "imite" esse comportamento?

4 respostas

Oi Jeterson, até onde sei não. Até poderia ser feito, mas a compilação ia gerar um código bem ruim, cheio de ifs, etc.

solução!

Boa noite, Jeterson! Como vai?

No TypeScript não é permitido fazer sobrecarga de métodos! No entanto, é permitido declarar métodos com parâmetros opcionais. Desse modo vc pode fazer algo assim:

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

let result1 = buildName("Bob");                  // funciona!
let result2 = buildName("Bob", "Adams", "Sr.");  // erro, muitos parâmetros sendo passados!
let result3 = buildName("Bob", "Adams");         // funciona!

Para saber mais: https://www.typescriptlang.org/docs/handbook/functions.html#optional-and-default-parameters

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Entendi, só queria saber se não tinha mesmo, pois já tive vezes de precisar. Obrigado a todos.

Por nada, Jeterson! Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos!