Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Por que não usar os Getters?

No vídeo o professor utiliza a notação protected.

Por que não foi utilizado o método get nesse momento?

Exemplo: ` export class View{

private _element: HTMLElement;

constructor(seletor: string){ this._element = document.querySelector(seletor); }

get getElement(): HTMLElement{ return this._element; }

} `

1 resposta
solução!

Oi Gustavo, tudo bem?

No exemplo que você mandou, o professor está trabalhando com herança. Quando usamos protected em uma propriedade, estamos permitindo que essa propriedade seja acessada diretamente pelas classes filhas, mas ainda mantendo-a inacessível a partir de instâncias de fora da hierarquia de herança.

Isso é útil pra encapsular a lógica interna da classe, mas ainda assim fornecer acesso controlado às subclasses.

Aqui está um exemplo para ilustrar:

class View {
  protected _element: HTMLElement;

  constructor(seletor: string) {
    this._element = document.querySelector(seletor);
  }
}

class MensagemView extends View {
  update() {
    // Pode acessar _element diretamente porque é protected
    this._element.innerHTML = "Atualizado!";
  }
}

const mensagemView = new MensagemView("#mensagem");
mensagemView.update();

Se _element fosse private, a classe MensagemView não poderia acessá-lo diretamente, o que complicaria a herança.

Agora, se você usasse um getter, como no seu exemplo:

export class View {
  private _element: HTMLElement;

  constructor(seletor: string) {
    this._element = document.querySelector(seletor);
  }

  get getElement(): HTMLElement {
    return this._element;
  }
}

Você ainda poderia acessar _element através do getter na classe filha:

class MensagemView extends View {
  update() {
    // Acessa _element através do getter
    this.getElement.innerHTML = "Atualizado!";
  }
}

const mensagemView = new MensagemView("#mensagem");
mensagemView.update();

No entanto, usar getters pode ser um pouco mais verboso e, em alguns casos, menos intuitivo quando se trata de herança. A escolha do professor por protected simplifica o acesso direto à propriedade nas subclasses, mantendo a intenção clara de que essa propriedade é para uso interno da hierarquia de classes.

Um abraço e bons estudos.