Cursos / Eletrônica / Programação Orientada a Objetos / Aula
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