Aula 15
Como Checar Propriedades de um Objeto como Parametro de Função no TypeScript
Summary
Resumo da Aula sobre TypeScript
Nesta aula, aprendemos como verificar as propriedades de um objeto passado como argumento a uma função utilizando TypeScript, que nos ajuda a detectar erros de forma mais eficiente.
Objetivo da Aula
- Checar as propriedades de um objeto.
- Detectar erros na compilação, evitando problemas que só aparecem na execução do programa.
Exemplo Prático
-
Definição do Objeto:
- Criamos um objeto chamado
Alguém
com as seguintes propriedades:prénome
(string)sobrenome
(string)idade
(number)
- Criamos um objeto chamado
-
Função:
- A função
imprimirNome
é definida para receber um objeto e imprimir uma mensagem no console que combinaprénome
esobrenome
.
- A função
-
Problemas Sem TypeScript:
- Se a propriedade
prénome
for removida, o resultado ao executar o programa geraria "Undefined Silva", o que não é desejado. - TypeScript ajuda a detectar este erro na compilação.
- Se a propriedade
Definindo Tipos com TypeScript
-
Ao invés de usar o tipo
object
, definimos um tipo específico para o parâmetro da função:type Indivíduo = { prénome: string; sobrenome: string; idade: number; };
-
Com essa definição, se tentarmos chamar a função
imprimirNome
sem a propriedadeprénome
, TypeScript irá nos avisar durante a compilação:Erro: A propriedade 'prénome' não existe no tipo fornecido.
Vantagens do TypeScript
- Erros de digitação nas propriedades (como esquecer um caractere) são detectados na compilação, e o TypeScript sugere correções.
- Permite que o desenvolvedor identifique e corrija erros antes da execução do código, aumentando a robustez e confiabilidade do programa.
Conclusão
A aula destacou a importância de definir tipos de objetos em TypeScript para evitar erros comuns e garantir a correção do código antes da execução.
Próxima aula: Seguiremos aprofundando em TypeScript e suas funcionalidades.
Video Transcript
Nesta aula vamos aprender como checar as propriedades de um objeto que é passado como
argumento a uma certa função.
TypeScript vai nos ajudar a detectar erros.
Talvez a gente tenha digitado o nome da propriedade errado e se não tivesse o TypeScript, o JavaScript
não iria dizer nada se houvesse algum erro ou não.
Vamos começar com um exemplo.
Vamos supor que nós temos um objeto chamado Alguém, um let.
Essa variável vai armazenar um objeto.
Esse objeto tem detalhes de uma pessoa, certo um indivíduo.
Vou dizer prénome, por exemplo, Ana e sobrenome.
Vamos aqui.
Deixa o silêncio.
Essa pessoa também tem uma idade que eu vou pôr aqui.
Vamos no objeto com três propriedades.
Prénome, sobrenome e idade.
Prénome é um string, sobrenome é um string e idade é um number.
Vamos pegar alguém e chamar a função que a gente vai definir já, imprimir nome.
Essa função imprimir nome, vamos passar alguém como argumento.
Imprimir nome vai imprimir o nome da pessoa em uma mensagem.
Meu nome, nesse caso aqui, meu nome é Ana Silva, por exemplo.
Então combinaria o prénome e sobrenome aqui nessa string.
Queremos que o imprimir nome dê o console log.
Vamos definir aqui em cima essa função imprimir nome que leva como argumento um objeto.
Vamos dizer indivíduo ou...
E a gente já sabe como fazer isso, só dar o console log.
Meu nome é...
E vamos precisar do nome aqui.
Eu vou botar dentro de uma variável que eu vou chamar nome.
Vou criar a variável nome.
E vai ser indivíduo.prénome mais um espaço mais indivíduo.sobrenome.
Isso aqui vai combinar os nomes, Ana e Silva, separados por um espaço.
E vai interpolar aqui e vai dar o console log.
Meu nome é, nesse caso, Ana Silva.
Vamos testar.
No terminal, tsc, vou dar node dist, barra, o nome do meu arquivo, propriedades, no seu
que, no seu que, .js.
Está funcionando direitinho.
Mas se eu tivesse, por exemplo, aqui, eu não tivesse o prénome.
Eu vou comentar essa linha até remover o que acontece.
Eu esqueci de compilar, tsc.
Então ele compilou, vou rodar.
Meu nome é Underfine Silva.
Isso não é legal, né?
A gente só viu que teve problema na hora de rodar o programa com node.
Seria legal se a gente pegasse, né?
Detectasse o erro na hora da compilação do tsc.
Como fazer isso?
Bem, nós vamos aqui definir um tipo para o indivíduo.
Nós poderemos ter, vou deixar comentado, tá?
Só adicionar do object.
Mas aí não iria adiantar nada também, porque se eu dar o tsc de novo, tá?
Vamos ver aqui.
A verdade, ele até ajudou um pouco, dizer que a propriedade prénome não existe no
object.
Então ajudou um pouco.
O object, propriedade sobrenome não existe no object.
Bem, o que é que é esse erro aqui?
Ah, esse aqui também tá meio esquisito, porque eu defini sobrenome lá.
Mas ele disse que não tem, não existe no tipo object.
Tá?
Então, em vez de fazer isso aqui, nós vamos fazer o seguinte, vamos definir o tipo de
cada propriedade individualmente.
Então, em vez de object, eu vou fazer o seguinte.
Igual, tá?
Abre as chaves, tá?
E vou dizer o primeiro, tá certo?
O primeiro será prénome, que vai ser uma string.
O segundo sobrenome, que será também uma string.
Aí vou até usar o ponto e vírgula aqui.
Idade, ponto e vírgula, vai ser 20, não 26, mas number.
Tá?
Vamos ver agora no que dá.
Testsc.
Pronto.
Então, note que agora o erro mudou.
Quando nós fazemos testesc, ele verifica aqui.
Vamos ler aqui do começo.
Linha 11, a chamada do imprimi nome.
Linha 11.
O argumento do tipo sobrenome idade.
Note que não tem prénome.
Não pode ser atribuído ao tipo que tem prénome, sobrenome e idade.
Então, tá dizendo que a propriedade prénome não existe no tipo que a gente passou como
argumento.
E com isso ele nos dá um erro mais claro.
Ah, você passou um objeto, mas não tem a propriedade prénome.
Então vai dar problema.
Então, na hora da copilação, já tem até que tem um problema aqui.
Tá?
Então precisa ter o prénome.
Testsc.
Sem problemas.
Agora note que embora que tenha, tem que ter prénome, sobrenome, mas na verdade nem precisava
da idade aqui porque eu não usei.
O que acontece é que eu removi a idade.
Eu vou remover a idade de lá.
Que nem precisa, né?
Que eu não usei a idade.
Então vamos ver o que dá.
Então nenhum dei problema.
Então se você tiver mais propriedades do que você declarou, não vai ter problema.
Então tem que ter esse detalhe que embora que tenha declarado prénome e sobrenome para
o parâmetro indivíduo, objeto, se você tiver propriedades a mais, nesse caso idade, que
nem foi usado, não vai dar problema, não vai detectar nenhum, não vai dizer que é
um erro, né?
Vamos ver o arquivo que foi gerado já o test que do lado direito da tela eu vou abrir
o arquivo gerado.
Iprime nome indivíduo, fenome, fenome, vou diante, tá?
Certo?
Então a gente viu que ele vai dar problema se você não passa as propriedades que são
necessárias.
Agora o que aconteceria, por exemplo, se eu tivesse escrito a implementação errada
no nosso função Iprime nome?
Por exemplo, eu esqueci de digitar o e do prénome e eu dis... indivíduo.prnome.
Vamos ver se dá problema no TSC, na copulação.
Como ele achou aqui, deu um erro na linha 2, coluna 26, propriedade prnome, não existe
no tipo prénome sobre nome.
Aí você verá a mesma hora, ah, eu fiz um... cometi um erro e esqueci de digitar o
e.
E é o type scriptetão legal que ele diz, você quis dizer prénome e ele aponta aqui
para onde é que deu o erro.
E até diz que tem a propriedade prénome aqui que você declarou.
Então você vai lá na mesma hora e ajeita.
Note que a gente nem teve esperar até a hora de executar o programa, foi na hora da compilação
que a gente detectou o erro.
Tá certo?
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: