Aula 33
Propriedade de Somente-Leitura (readonly) de Atributos de Classe em TypeScript
Summary
Aula de TypeScript: Propriedades Somente de Leitura
Nesta aula, abordamos o conceito de propriedades somente de leitura em classes no TypeScript, focando na palavra-chave readonly
. Aqui está um resumo dos principais pontos discutidos:
Conceito de readonly
- A palavra-chave
readonly
pode ser utilizada em propriedades de classes, assim como em interfaces. - Essas propriedades são definidas de forma que, uma vez atribuídas, não podem ser modificadas novamente.
Exemplo Prático
-
Classe Índivíduo:
- Criamos uma instância da classe
Indivíduo
, armazenando-a na variávelMaria
. - Tentamos renomear
Maria
paraVirajuão
.
- Criamos uma instância da classe
-
Implementação de
readonly
:- Para impedir a alteração do nome, a propriedade do nome deve ser decorada com
readonly
. - A modificação da declaração de
private nome: string
paraprivate readonly nome: string
é necessária. - Isso significa que não haverá mais um setter para o nome, pois ele não pode ser alterado após a construção do objeto.
- Para impedir a alteração do nome, a propriedade do nome deve ser decorada com
-
Restrição:
- Ao tentar modificar o nome após a atribuição inicial, o TypeScript mostrará um erro.
- O erro indica que a propriedade é somente leitura e não pode ser atribuída novamente.
Conclusão
- O uso da propriedade
readonly
é uma maneira eficaz de definir que uma propriedade de classe não pode ser alterada após sua primeira atribuição, promovendo assim um encapsulamento maior em nossas classes.
Esperamos que esta aula tenha sido útil! Até a próxima!
Video Transcript
Estamos de volta com mais uma aula de TypeScript.
Nesta aula vamos aprender sobre propriedades de somente de leitura da classe.
Já aprendemos o ReadOn em propriedade de somente de leitura para interfaces.
A gente também pode usar aquela palavra-chave para a nossa classe dos atributos da classe.
Por exemplo aqui, olha aqui na linha 25.
Lembra que a gente tem uma classe indivíduo, a gente criou um novo instância de um objeto indivíduo
e armazenou variável.
Maria.
Agora a gente, na linha 25, a gente renomeia, Maria para o nome Virajuão.
Agora, vamos supor que a gente não quer aceitar isso.
Vamos supor que quando você criar a nova instância do objeto, você não pode mais mudar o nome.
Nesse caso, a propriedade nome teria que ser somente leitura ReadOnly.
Para poder fazer isso é bem simples.
Vamos lá em cima aqui.
Você está vendo aqui propriedade privateNome.
Então, isso aqui era definido anteriormente como privateNomeString aqui fora.
Para você poder somente declarar a propriedade como somente leitura, você põe ReadOnly aqui antes do nome.
Da mesma maneira aqui, como a gente está usando o atalho da propriedade de parâmetro construtor,
é só pegar esse ReadOnly aqui e pôr aqui.
Dá, dessa maneira, assim.
Agora, quando você tem a propriedade de ReadOnly, significa o quê?
Que é somente leitura.
Significa que você só pode fazer a primeira atribuição, mas depois da primeira atribuição,
não pode mais modificar essa propriedade.
Então, não podemos ter mais o setter para o nome, porque o nome não pode ser mudado novamente.
Então, por isso que está dando esse erro aqui para mim.
Então, podemos atribuir nome porque é uma propriedade somente leitura.
Então, a gente vai ter que se livrar do setter.
Não pode ter mais. Eu vou comentar aqui.
Agora, vamos lá embaixo.
Olha aquele comando aqui na linha 24 para poder mudar o nome da Maria.
Maria é um objeto do tipo indivíduo, mas não podemos mais mudar.
Está dizendo que não podemos atribuir a propriedade nome porque essa propriedade é somente leitura.
ReadOnly.
Então, não podemos mais fazer isso.
Então, já dá erro.
Então, esse é o ReadOnly para tornar a propriedade somente leitura.
Depois da primeira atribuição, nesse caso, através do construtor aqui,
que ele já atribui, na verdade, o que está acontecendo, o des.nome está sendo setado aqui,
pela primeira vez e somente após essa primeira vez.
E somente nessa primeira vez que pode modificar depois dessa primeira atribuição,
não pode mais. E esse é o ReadOnly.
Você pode aplicar atributos de uma classe.
Está bom?
Então, por essa aula é só.
E até a próxima. Tchau.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: