Olá Matheus, tudo bem?
Desculpe a demora em retornar.
Sim, é normal que o construtor de uma classe fique vazio quando apenas se deseja inicializar as propriedades da classe com os valores passados como parâmetros. Na verdade, muitas vezes isso é até recomendado, pois torna o código mais simples e legível.
No seu exemplo, o construtor está recebendo três parâmetros (uma data, uma quantidade e um valor) e atribuindo esses valores às propriedades correspondentes da classe. Como não há nenhuma operação adicional a ser realizada no construtor, o bloco de código fica vazio.
Se houvesse alguma operação adicional que precisasse ser feita no momento da criação do objeto (como validar os valores passados como parâmetros, por exemplo), então seria necessário preencher o bloco de código do construtor com essa operação.
Vamos ver um exemplo de como isso pode ser feito. Suponha que você queira validar se o valor passado como parâmetro é maior que zero. Nesse caso, você poderia fazer algo assim:
class Exemplo {
constructor(private _valor: number) {
if (_valor <= 0) {
throw new Error('O valor deve ser maior que zero');
}
}
}
Nesse exemplo, o construtor recebe um parâmetro _valor
e verifica se ele é maior que zero. Se não for, o construtor lança um erro indicando que o valor deve ser maior que zero. Dessa forma, o objeto só será criado se o valor passado for válido.
Por outro lado, se não houver nenhuma operação adicional a ser feita, como no seu exemplo, é melhor deixar o bloco de código vazio mesmo, pois isso torna o código mais simples e fácil de entender.
Espero que tenha te ajudado.
Um abraço e bons estudos.