1
resposta

[Bug] Erro ao inserir a classe Imprimivel

Boa tarde

Referente ao curso Typescript parte 3 - Parte 5 - Mais sobre interfaces, Aula 04.

Seguindo os mesmos passos do professor ao inserir a classe imprimivel nas classes negociacao e negociacoes, o typescript apresenta o seguinte erro:

ERRO MOSTRADO NO TERMINAL

app/src/models/negociacoes.ts(4,14): error TS2515: Non-abstract class 'Negociacoes' does not implement inherited abstract member 'paraTexto' from class 'Imprimivel'.

CODIGO DO DO ARQUIVO NEGOCIACOES

import { Imprimivel } from '../utils/imprimivel.js'; import { Negociacao } from './negociacao.js';

export class Negociacoes extends Imprimivel{ private negociacoes: Negociacao[] = [];

public adiciona(negociacao: Negociacao) {
    this.negociacoes.push(negociacao);
}

public lista(): readonly Negociacao[] {
    return this.negociacoes;
}

}

O que está errado, e o que precisa ser arrumado ?

1 resposta

E aí!

Parece que o TypeScript está reclamando porque a classe Negociacoes está herdando da classe Imprimivel, mas não implementa o método abstrato paraTexto que é definido na classe base Imprimivel.

A solução seria adicionar a implementação do método paraTexto na classe Negociacoes. Se o método paraTexto é abstrato na classe Imprimivel, qualquer classe que herde dela precisa fornecer uma implementação para esse método.

Então, no seu arquivo negociacoes.ts, você precisaria adicionar algo assim:

public paraTexto(): string {
    // implementação do método paraTexto aqui
    // por exemplo, pode ser algo como return JSON.stringify(this.negociacoes);
}

Lembre-se de ajustar o conteúdo do método de acordo com a lógica desejada para representar a instância de Negociacoes como uma string.