1
resposta

Erro ao tentar setar o template no this._elemento.html(this.template(template));

Argument of type 'string' is not assignable to parameter of type 'T'. 'string' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'.,

Não seu o motivo pois o código está idêntico ao do professor.

export abstract class View<T> {
  protected _elemento: JQuery;
  private _escapar: boolean;

  constructor(seletor: string, escapar: boolean) {
    this._elemento = $(seletor);
    this._escapar = escapar;
  }

  update(model: T) {
    let template = this.template(model);
    if (this._escapar)
      template = template.replace(/<script>[\s\S]*?<\/script>/, "");

    this._elemento.html(this.template(template));
  }

  abstract template(model: T): string;
}
1 resposta

Fala ai Carlos, tudo bem? Estranho, olhando os códigos eles parecem iguais mesmo.

Pode ser algum outro detalhe em outra parte do código ou até mesmo versão do TypeScript.

Posso te pedir um favor? Compartilha o projeto completo comigo, assim eu consigo simular o problema por aqui e analisá-lo com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software