DEV Community

Cover image for O que são annotations?
Cristian Magalhães
Cristian Magalhães

Posted on

1

O que são annotations?

Eae gente bonita, beleza?

Dessa vez eu vim aqui falar um pouco para vocês sobre as annotations ou decorators . Elas são muito comuns em linguagens como Java, C# e em frameworks como Angular e NestJS. Em algum momento da sua vida você vai ver uma e precisar usar também, então é sempre bom saber onde vivem? O que comem?

gif entendendo

O que são?

Annotations são funções que podem ser usadas em classes, métodos ou atributos.
As annotations tem a seguinte assinatura @ seguido do nome da anotação.

@Table(name = "person")
class Person {
  @Id
  id: number;

  @IsNotNull
  name: string;
}
Enter fullscreen mode Exit fullscreen mode

Você pode perceber que no exemplo acima temos duas annotations. A annotation @Table() recebe um parâmetro chamado name enquanto as outras não recebem nada e nem ao menos tem parenteses. E é assim mesmo que a coisa funciona. Isso pode depender da linguagem que você estiver usando. Na dúvida leia a documentação da linguagem.

gif

Para que servem?

As annotations podem servir para diferentes casos, como no exemplo acima a annotation @Table() serve para dizer que essa classe se refere a tabela de nome pessoa. Enquanto a annotation @id diz ao banco que aquele campo é uma chave primária e por fim a annotation @IsNotNull diz ao banco que aquela coluna é não nula.

Geralmente as annotations são disponibilizadas por frameworks para facilitar a configuração. É bem comum os ORM's disponibilizarem esse tipo de artifício para fazer as configurações, assim evitando criar arquivos de configurações e agilizando o desenvolvimento.

É importante dizer que não só ORM's os usam as annotaions. Por exemplo, você pode usar o @test para dizer que aquele método é um teste e para várias outras coisas no Java.

É importante mencionar também que você pode criar as suas próprias annotations para fazer o que você quiser, nesse link você pode ver como fazer isso no NestJS.


Se chegou até aqui, me segue la nas redes vizinhas.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️