<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bruno Gonçalves</title>
    <description>The latest articles on DEV Community by Bruno Gonçalves (@brunodilella).</description>
    <link>https://dev.to/brunodilella</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F342424%2Fe7da1f87-87b1-4590-8714-14557b3b8da7.jpeg</url>
      <title>DEV Community: Bruno Gonçalves</title>
      <link>https://dev.to/brunodilella</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brunodilella"/>
    <language>en</language>
    <item>
      <title># Explorando o Poder dos Decorators em TypeScript e NestJS</title>
      <dc:creator>Bruno Gonçalves</dc:creator>
      <pubDate>Tue, 07 May 2024 12:39:00 +0000</pubDate>
      <link>https://dev.to/brunodilella/-explorando-o-poder-dos-decorators-em-typescript-e-nestjs-44m8</link>
      <guid>https://dev.to/brunodilella/-explorando-o-poder-dos-decorators-em-typescript-e-nestjs-44m8</guid>
      <description>&lt;p&gt;Uma funcionalidade introduzida no &lt;strong&gt;TypeScript&lt;/strong&gt;, oferecem uma maneira poderosa de adicionar metadados a classes, métodos e propriedades. Esta capacidade tem sido amplamente explorada na comunidade de desenvolvimento, especialmente em frameworks como &lt;strong&gt;NestJS&lt;/strong&gt;, onde os decoradores desempenham um papel fundamental na construção de aplicativos escaláveis e modulares.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que são Decorators?
&lt;/h2&gt;

&lt;p&gt;Decorators são uma característica do TypeScript que permite adicionar metadados a definições de classes, métodos, acessadores e propriedades. Eles são denotados pelo prefixo &lt;code&gt;@&lt;/code&gt; seguido de um identificador. decorators podem ser anexados a declarações de classe, declarações de métodos, declarações de acessadores, declarações de propriedades ou parâmetros de função.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefícios dos Decorators
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adição de Metadados&lt;/strong&gt;: decorators permitem adicionar metadados a classes e métodos, o que pode ser útil para várias finalidades, como serialização, validação ou configuração de rotas em APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separação de Responsabilidades&lt;/strong&gt;: Ao usar decorators para adicionar funcionalidades específicas a classes e métodos, é possível manter um código mais limpo e modular, separando as preocupações em diferentes partes do código.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Facilidade de Leitura e Manutenção&lt;/strong&gt;: decorators tornam o código mais legível e expressivo, pois as funcionalidades adicionadas por eles são claramente identificáveis na declaração das classes e métodos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Decorators em NestJS
&lt;/h2&gt;

&lt;p&gt;Em NestJS, um framework para construir aplicativos Node.js escaláveis e eficientes, os decorators são amplamente utilizados para definir rotas de API, configurar módulos, controladores e provedores de serviços.&lt;/p&gt;

&lt;p&gt;Por exemplo, para definir uma rota de API em NestJS, você pode usar o decorator &lt;code&gt;@Get&lt;/code&gt;, &lt;code&gt;@Post&lt;/code&gt;, &lt;code&gt;@Put&lt;/code&gt;, &lt;code&gt;@Delete&lt;/code&gt; etc., juntamente com um caminho de rota, como mostrado abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Get&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@nestjs/common&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cats&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CatsController&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;This action returns all cats&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Neste exemplo, o decorator @Get() é usado para definir uma rota GET para a classe CatsController.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Decorators em TypeScript e frameworks como NestJS oferecem uma maneira elegante e poderosa de adicionar funcionalidades a classes, métodos e propriedades. Eles promovem a modularidade, a legibilidade e a manutenção do código, tornando-os uma ferramenta valiosa para desenvolvedores que buscam criar aplicativos escaláveis e bem estruturados.&lt;/p&gt;

&lt;p&gt;Explore os decorators em seus projetos TypeScript e NestJS e descubra como eles podem simplificar e melhorar sua experiência de desenvolvimento!&lt;/p&gt;

&lt;p&gt;Para mais informações seguem os links abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/decorators.html"&gt;https://www.typescriptlang.org/docs/handbook/decorators.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.nestjs.com/custom-decorators"&gt;https://docs.nestjs.com/custom-decorators&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NestJS é #$%¨@$ de uma chance para ele kkkkkkk&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
