Ao final do capítulo 4 - "Lidar com data é trabalhoso? Chame um ajudante!", terminamos de blindar o método "get negociacoes" da lista de negociações.
Porém, fica aqui uma sugestão:
O método "adiciona" atualmente só faz um simples push na lista. Ou seja, qualquer coisa passada como parâmetro irá ser incluída lista, inclusive valores que NÃO SÃO negociações.
Para blindar isso, fiz a seguinte alteração:
adiciona(negociacao) {
if (!(negociacao instanceof Negociacao)) throw new Error("Invalid negotiation")
this._negociacoes.push(negociacao)
}
O que ele faz é, antes de dar o push, ele roda uma simples verificação com o operador instaceof Esse operador verifica se um valor é instancia de outro. Nesse caso, estou verificando se o valor negociacao passado é uma instância da classe Negociacao. Se não, ele joga um erro para o console, avisando que a negociação não é válida.