Eu dei uma pesquisada em como poderia criar uma classe abstrata, e vi uma solução que achei interessante. Baseando-se no código do curso, ficaria assim:
class View {
constructor(elemento) {
if(this.constructor === View) throw new Error("Classe View não pode ser instanciada diretamente");
this._elemento = elemento;
}
//Outros métodos
}
O "if" checa se o objeto é estritamente da classe View e lança um erro caso afirmativo, impedindo a instanciação da classe. Eu testei com o projeto do curso, e aparentemente funcionou sem problemas, mesmo sem implementar o construtor nas classes filhas.
Tem alguma coisa que impede de usar uma alternativa como esta? O que pode impactar?