1
resposta

Colocar data como private readonly

ao invés de definir a propriedade data como public readonly, coloqui private readonly e resolveu o problema. esta certo? ou melhor seria seguir a solução do flávio com a programação defensiva?

    constructor(
        private readonly data: Date, 
        public readonly quantidade: number, 
        private readonly valor: number
    ){}
1 resposta

Oii, Lucas! Tudo bem?

Nesse caso, o método private reandoly não garante 100% que, por exemplo, a propriedade data não seja editada. Pois como podemos ver no minuto 1:43 da aula Mais surpresas em nossa modelagem a data não é um tipo primitivo e sim objeto, o que permite adicionar todos os métodos existentes para o date que podem modificar a data. Ou seja, o código se torna mutável e não apenas para leitura.

Então, sugiro observar também a estratégia usada pelo Instrutor nas próximas explicações, onde ele abordará o conceito de programação defensiva para que o código não seja mutável, como no uso do private readonly.

Espero ter esclarecido sua dúvida. Continue interagindo no fórum compartilhando suas dúvidas, sugestões e projetos.

Bons estudos, Lucas!