Quais são as vantagens e desvantagens de usar readonly em serviços injetados em comparação com uma declaração sem readonly? Considerando o exemplo abaixo, em que situações é recomendável declarar o serviço como readonly?
private toastService = inject(ToastService);
// ou
private readonly toastService = inject(ToastService);
Top comments (1)
O modificador
readonly
garante que, uma vez inicializada, a propriedade jamais mudará seu valor ao longo de seu ciclo de vida.Eu recomendo e gosto de aplicar
readonly
sempre, pois, para mim, me passa mais segurança de que eu nunca vou conseguir reatribuir um valor, mesmo que por acidente, à uma propriedade.O mesmo vale para
const
. Sempre que eu olho para uma propriedade comreadonly
ou uma variável comconst
eu já sinto que me tira um peso da mente, porque é uma preocupação a menos que eu preciso ter.Usando o seu contexto, o cenário em que usar
readonly
não seria adequando é se vc, conscientemente, precisa alterar o valor da propriedade em algum momento dentro da sua classe. Mas tem que ver se não há uma solução melhor, vc teria que ter um motivo extremamente bom para fazer isso, senão seu código poderia ficar mais complexo do que o necessário.Algumas pessoas podem argumentar contra o uso do
readonly
dizendo que o código fica mais verboso, mas eu acho que o código mais verboso é um preço pequeno a se pagar pelas garantias que oreadonly
nos dá.