Cursos / Redes de Computadores / Programação Orientada a Objetos / Aula

arrow_back Aula 03 - Construtores e Objetos

Sobrecarga de métodos ou funções

Na vídeo da aula passada, vimos que não é possível fazer sobrecarga de construtores, porém o TypeScript fornece o conceito de sobrecarga de função ou métodos. Ele permite várias funções ou métodos com o mesmo nome, mas diferentes tipos de parâmetro e tipo de retorno. No entanto, o número de parâmetros deve ser o mesmo.

Vamos a um exemplo:

class Teste{

    public exec(a:string, b:string):string;

    public exec(a:number, b:number): number;

    public exec(a: any, b:any): any {
        return a + b;
    }

}

let t = new Teste()

console.log(t.exec(4,5));
console.log(t.exec('a','b'));

No exemplo acima, temos o mesmo método exec() com duas declarações e uma implementação. A primeira assinatura possui dois parâmetros do tipo string, enquanto a segunda possui dois parâmetros do tipo number.

O último método deve ter a implementação. Como o tipo de retorno pode ser string ou number de acordo com as duas primeiras declarações, devemos usar parâmetros compatíveis e tipo de retorno como any na definição da função.

ATENÇÃO! A sobrecarga de métodos ou função com diferentes números de parâmetros e tipos com o mesmo nome, não é suportada.

Portanto, para atingir a sobrecarga de métodos, devemos declarar todos os métodos com assinaturas possíveis. Além disso, a implementação do método deve ter tipos compatíveis para todas as declarações.


Versão 5.3 - Todos os Direitos reservados