DEV Community

Yuri Peixinho
Yuri Peixinho

Posted on

Typescritp: Sobrecarga de Construtor

Introdução

Assim como funções, construtores podem ter múltiplas assinaturas:

O problema

class Evento {
  constructor(id: string, tipo: string, competencia: string) { ... }
  // como aceitar também só id e tipo, sem competencia?
}
Enter fullscreen mode Exit fullscreen mode

Solução — overload signatures

class Evento {
  id: string;
  tipo: string;
  competencia: string;

  // assinaturas
  constructor(id: string, tipo: string);
  constructor(id: string, tipo: string, competencia: string);

  // implementação
  constructor(id: string, tipo: string, competencia: string = "nao-definida") {
    this.id = id;
    this.tipo = tipo;
    this.competencia = competencia;
  }
}

new Evento("1", "R-2010");              // ✅ primeira assinatura
new Evento("1", "R-2010", "2024-01");   // ✅ segunda assinatura
Enter fullscreen mode Exit fullscreen mode

Top comments (0)