Aula 31
Como Criar um Getter (usando get) em TypeScript
Summary
## Resumo do Transcript
### Recapitulando
1. **Renomeação de Propriedade**:
- A propriedade `nome` foi renomeada para `_nome` devido à criação de um setter.
- Isso evita conflito entre o nome da propriedade e o do setter.
2. **Modificações no Construtor e Getter**:
- Foram feitas alterações no construtor e no getter para utilizar `_nome`.
3. **Definição do Setter**:
- Criada uma função `set nome(novoNome)` para modificar o nome da instância.
- O setter não deve ter valor de retorno.
4. **Teste do Setter**:
- A linha 27 está chamando a função `nome`, usando sintaxe de açúcar (syntactic sugar) em vez de uma atribuição direta.
5. **Compilação e Execução**:
- O código foi compilado e o script executado. O console log foi corrigido para que o retorno do nome fosse visível.
6. **Modificações no Getter**:
- A função getter foi ajustada para retornar `_nome`.
7. **Saída do Script**:
- O output final foi: "Meu nome é Maria, o nome do indivíduo é João", indicando que o nome foi corretamente alterado de Maria para João.
### Conclusão
- O uso de getters e setters permite acesso indireto a propriedades privadas, proporcionando uma forma natural de interação com os atributos dos objetos no JavaScript através da sintaxe de açúcar.
Video Transcript
Então vamos continuar aqui, então recapitulando.
Renomeamos o nome da propriedade nome para underscore nome, porque a gente fez um setter
para poder mudar o nome da instância dessa maneira aqui em vez de falar set nome na função.
Agora, porque a propriedade nome aqui do setter, nome de setter, conflite com atributo nome,
temos que modificar o nome para ter outro nome na verdade com underscore.
Então modificamos construtor e o comprimentar, não se esqueça, underscore nome.
Agora fizemos o setter, fizemos uma função nome que vai pegar com argumento novo nome
e vai apenas modificar o nome da instância para o novo nome.
Adicionamos a palavra chave set antes desse nome e em norte que não pode ter o valor de retorno que ele reclamou.
E com isso vamos testar se realmente vai funcionar a linha 27.
Note que o nome ainda é propriedade privada e esse nome que a gente está referindo aqui na verdade é um método setter.
Então essa linha 27 realmente por trás dos bastidores está na verdade chamando a função nome um argumento aqui.
Isso não é uma atribuição direta, é uma atribuição indireta através da função setter usando esse açúcar sintático aqui, syntactic sugar.
Vamos compilar aqui no terminal, já compilei que o trasc, vou usar o node para rodar esse script, disto, barro indivíduo.
O meu nome é Maria. Ok, agora esqueci de dar o console log porque não tem gatherer.
Ah, então vamos fazer o gather rapidinho.
Para o gatherer faz o seguinte, pode voltar aqui, linha 19, muda para nome, tirar a palavra que eu vou botar get, tira o...
Pode até, acho que ele não reclama do valor de etono, sei lá, string, que ele retorna a string e vai ser o underscore nome.
Vamos lá, linha 30, o nome de divido é Maria, não é mygetnome, você pode agora se referir Maria.names diretamente,
embora que na verdade, de novo, quando você fala Maria.nome, você não está acessando a propriedade ou atributo nome diretamente.
Isso é um açúcar sintático, na verdade isso é uma chamada de função, ainda que não tem os parênteses, na verdade está chamando a função gather, não é o set, é o gather,
nesse caso, que é um acesso, e eu esqueci do parênteses do console log.
Então gather, essa função é chamada e ele retorna o desponto nome, que é o nome da... do indivíduo, note que Maria mudou o nome para João.
Então esperamos ver João. E eu não copilei.
Vamos pilar primeiro, agora roda de novo. Oi, meu nome é Maria, o nome do indivíduo é João.
Então funcionou direitinho, mudou o nome para João e mostrou o nome para João.
Tá, então esses são os gatters e os setters.
Tá bom?
Vamos ver aqui, para poder você usar esse açúcar sintático, atribuição e acesso, de maneira que, assim, parece que seja direta, né,
maneira natural do JavaScript, objeto, ponto, sua propriedade, objeto, ponto, sua propriedade, igual a um novo valor.
Esse é o açúcar sintático, nesse caso.
Por causa do set, o palavra já vem por causa do get.
Na verdade são funções, você chama a função aqui para acessar o nome na linha 30.
Ei, me dá o get, me dá o nome aqui, chama o gather nome.
Na linha 27, ele vai lá para o setter, ei, quero mudar o valor, por favor, chama essa função setter nome.
Está aqui o novo nome, ele muda lá o atributo que, na verdade, se chama underscore nome, que está aqui definido como propriedade privada.
Então não há acesso direto, é acesso indireto e, precisamente, através do getter e do setter.
Tá bom?
Urassal, é só, e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: