<?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: Otavio Messias Palma</title>
    <description>The latest articles on DEV Community by Otavio Messias Palma (@otaviopalma).</description>
    <link>https://dev.to/otaviopalma</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%2F604116%2Fb512eee7-6c12-4e86-91e9-cc32505115f5.jpeg</url>
      <title>DEV Community: Otavio Messias Palma</title>
      <link>https://dev.to/otaviopalma</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/otaviopalma"/>
    <language>en</language>
    <item>
      <title>Criando um projeto React com TypeScript, Eslint e Prettier</title>
      <dc:creator>Otavio Messias Palma</dc:creator>
      <pubDate>Fri, 16 Apr 2021 12:48:09 +0000</pubDate>
      <link>https://dev.to/otaviopalma/criando-um-projeto-react-com-typescript-eslint-e-prettier-2okg</link>
      <guid>https://dev.to/otaviopalma/criando-um-projeto-react-com-typescript-eslint-e-prettier-2okg</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fala Devs&lt;/strong&gt;, no tópico de hoje vou ensinar a inicializar um projeto &lt;em&gt;React&lt;/em&gt; utilizando &lt;em&gt;TypeScript&lt;/em&gt;, &lt;em&gt;Eslint&lt;/em&gt; e &lt;em&gt;Prettier&lt;/em&gt; para mantermos um código limpo e organizado, afinal, se nem o código estiver organizado como vamos garantir que o sistema será não é mesmo?&lt;/p&gt;

&lt;p&gt;Sempre que vou iniciar um novo projeto &lt;em&gt;React&lt;/em&gt; é a mesma dor de cabeça procurando vários tutoriais ensinando a fazer &lt;strong&gt;X&lt;/strong&gt;, &lt;strong&gt;Y&lt;/strong&gt; ou &lt;strong&gt;Z&lt;/strong&gt;, no meio do caminho percebo que algum dos tutoriais estava desatualizado e preciso começar do zero, desde então comecei a seguir a própria documentação das bibliotecas e nunca mais tive problemas.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72tgzouj3mzox2mrrc0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72tgzouj3mzox2mrrc0f.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando o projeto React
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bora por a mão na massa&lt;/strong&gt;. A primeira coisa que devemos fazer é criar o projeto &lt;em&gt;React&lt;/em&gt; zerado, aqui temos duas opções, utilizar o &lt;strong&gt;create-react-app&lt;/strong&gt; ou &lt;strong&gt;webpack&lt;/strong&gt;. Por questões de gosto sempre opto pelo &lt;strong&gt;create-react-app&lt;/strong&gt;, seguindo o passo-a-passo da própria &lt;a href="https://create-react-app.dev/docs/getting-started#creating-a-typescript-app" rel="noopener noreferrer"&gt;documentação&lt;/a&gt; devemos utilizar o comando:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npx create-react-app my-app --template typescript


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;lembrando que sempre é indicado utilizar &lt;code&gt;npx&lt;/code&gt; pois garante que estaremos utilizando a ultima versão do &lt;strong&gt;create-react-app&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;my-app&lt;/em&gt; é o nome do projeto e pode ser substituído por qualquer coisa desde que possua apenas &lt;strong&gt;letras minúsculas&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Finalizada a instalação podemos acessar a pasta do projeto e abrir em nosso editor preferido, no meu caso o VSCode, caso seja o seu também é só dar o seguinte comando:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

code my-app


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Projeto criado, hora de começarmos a configurá-lo para uso!&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fph911resnofxjl5ynsln.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fph911resnofxjl5ynsln.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Adicionando o projeto ao repositório do GitHub
&lt;/h2&gt;

&lt;p&gt;Esse passo é opcional, mas, recomendado. Sempre que inicio novos projetos costumo adicioná-los ao meu repositório do GitHub por questões de facilidade de acesso e obviamente, organização.&lt;/p&gt;

&lt;p&gt;O primeiro passo é acessar o &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, acessar sua conta e adicionar um novo repositório.&lt;/p&gt;

&lt;p&gt;Agora devemos &lt;em&gt;conectar&lt;/em&gt; nosso repositório local ao remoto, para isso utilizamos o seguinte comando:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

git remote add origin git@github.com:USER_NAME/REPO_NAME.git


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Em seguida criamos nossa branch principal:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

git branch -M main


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;desde outubro de 2020 o GitHub passou a utilizar &lt;strong&gt;main&lt;/strong&gt; ao invés de &lt;strong&gt;master&lt;/strong&gt;, &lt;a href="https://www.zdnet.com/article/github-to-replace-master-with-main-starting-next-month/" rel="noopener noreferrer"&gt;veja aqui&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;E por fim subimos para o repositório remoto nosso projeto recém-criado: &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

git push -u origin main


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Projeto adicionado ao GitHub, hora de começar a configurar nosso linter!&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi49va9ntnx02ynrkbpue.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi49va9ntnx02ynrkbpue.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurando o ESLint
&lt;/h2&gt;

&lt;p&gt;Essa costuma ser a parte que eu me perco quando configuro novos projetos, mas novamente, se seguirmos a documentação de cada uma das bibliotecas não tem erro!&lt;/p&gt;

&lt;p&gt;Começando pelo &lt;a href="https://eslint.org/docs/user-guide/getting-started#installation-and-usage" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;, devemos utilizar o seguinte comando:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

yarn add eslint -D


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;usamos -D para adicionar o ESLint como dependência de desenvolvimento já que quando nosso código for para produção ele não servirá de nada&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;E em seguida já inicializamos ele com:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npx eslint --init


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;esse passo costuma mudar um pouco de acordo com as atualizações que saem para o ESLint, não se desespere se tiver alguma configuração que não mencionei aqui, em caso de dúvidas só pesquisar no Google e entender melhor o que está sendo solicitado!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agora começamos a configurar o ESLint, a primeira pergunta é referente a como iremos utilizar o ESLint em nosso sistema &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? How would you like to use ESLint? ... 
  To check syntax only // apenas para checagem de sintaxe
  To check syntax and find problems // para checagem de sintaxe e encontrar problemas
&amp;gt; To check syntax, find problems, and enforce code style // para checagem de sintaxe, encontrar problemas e reforçar estilo de escrita


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;aqui eu aconselho a selecionar a ultima opção (navegue com as setas e confirme com o &lt;em&gt;enter&lt;/em&gt;!) mas fica ao seu critério&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Depois devemos escolher qual tipo de módulos nosso projeto usa, nesse caso como estamos lidando com &lt;em&gt;React&lt;/em&gt; é a primeira opção mesmo:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? What type of modules does your project use? ... 
&amp;gt; JavaScript modules (import/export)
  CommonJS (require/exports)
  None of these


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;No próximo passo selecionamos qual framework estamos utilizando, novamente será a primeira opção:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? Which framework does your project use? ...       
&amp;gt; React
  Vue.js
  None of these


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;A próxima pergunta é sobre o TypeScript, como estamos configurando o projeto com ele é só selecionar &lt;strong&gt;Yes&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? Does your project use TypeScript? » No / Yes


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;No próximo passo devemos selecionar onde nosso código irá rodar, no caso do React será sempre no navegador, então é só dar &lt;em&gt;enter&lt;/em&gt; e seguir pro próximo passo:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? Where does your code run? ...  (Press &amp;lt;space&amp;gt; to select, &amp;lt;a&amp;gt; to toggle all, &amp;lt;i&amp;gt; to invert selection)
√ Browser
  Node


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Agora somos solicitados a escolher um estilo a ser utilizado no projeto, devemos escolher entre um existente, criar um estilo ou utilizar um próprio, eu sempre escolho utilizar um existente e opto por utilizar o do &lt;em&gt;AirBNB&lt;/em&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? How would you like to define a style for your project? ... 
&amp;gt; Use a popular style guide
  Answer questions about your style
  Inspect your JavaScript file(s)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;E por fim escolhemos o formato do nosso arquivo de configuração, novamente uma escolha pessoal, mas eu sempre opto pelo JSON pela facilidade do &lt;em&gt;auto-complete&lt;/em&gt; do VSCode:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

? What format do you want your config file to be in? ... 
  JavaScript
  YAML
&amp;gt; JSON


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Encerradas as configurações o ESLint vai perguntar se você deseja instalar as dependências utilizando o &lt;strong&gt;npm&lt;/strong&gt;, como nosso projeto está utilizando o &lt;strong&gt;yarn&lt;/strong&gt; aqui você tem duas opções:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;selecionar &lt;strong&gt;Yes&lt;/strong&gt;, apagar o arquivo &lt;code&gt;package.lock.json&lt;/code&gt; gerado após a instalação e rodar &lt;code&gt;yarn&lt;/code&gt; para instalar as dependências no arquivo &lt;code&gt;yarn.lock&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;selecionar &lt;strong&gt;No&lt;/strong&gt;, copiar a lista de dependências descrita e instalar as mesmas utilizando o &lt;code&gt;yarn add ...&lt;/code&gt; (não esquecer de adicionar o -D caso opte por essa opção)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agora temos nosso arquivo &lt;code&gt;.eslintrc&lt;/code&gt; criado e podemos começar a editar ele, mas antes só mais um passo.&lt;/p&gt;

&lt;p&gt;Vamos instalar a biblioteca &lt;code&gt;eslint-import-resolver-typescript&lt;/code&gt; que permite importar arquivos &lt;code&gt;.ts/.tsx&lt;/code&gt; e algumas outras funcionalidades dentro do nosso projeto, novamente seguindo a [documentação] é só usar o comando:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

yarn add -D eslint-plugin-import @typescript-eslint/parser eslint-import-resolver-typescript


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;nesse comando ele tenta instalar duas bibliotecas que já estão instaladas, mas não tem problema&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;E em seguida devemos atualizar nosso arquivo &lt;code&gt;.eslintrc&lt;/code&gt;, é só adicionar uma configuração à chave &lt;code&gt;rules&lt;/code&gt; e uma à chave &lt;code&gt;settings&lt;/code&gt; (caso não exista é só criar abaixo da última chave):&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"rules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"import/no-unresolved"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"settings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"import/resolver"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"typescript"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;ESLint configurado, vamos para o ultimo passo.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv1wh98ygdvjw582agh7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv1wh98ygdvjw582agh7x.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurando o Prettier
&lt;/h2&gt;

&lt;p&gt;Aqui iremos instalar duas dependências para configurar o &lt;em&gt;Prettier&lt;/em&gt; junto do &lt;em&gt;ESLint&lt;/em&gt;, a &lt;a href="https://github.com/prettier/eslint-config-prettier" rel="noopener noreferrer"&gt;primeira&lt;/a&gt; desabilita as regras conflitantes entre o &lt;em&gt;Prettier&lt;/em&gt; e o &lt;em&gt;ESLint&lt;/em&gt; e a &lt;a href="https://github.com/prettier/eslint-plugin-prettier" rel="noopener noreferrer"&gt;segunda&lt;/a&gt; transforma o &lt;em&gt;Prettier&lt;/em&gt; e suas configurações em regras do &lt;em&gt;ESLint&lt;/em&gt;, assim conseguimos integrar os dois, vamos lá:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

yarn add -D prettier eslint-config-prettier eslint-plugin-prettier 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Agora iremos atualizar nosso arquivo &lt;code&gt;.eslintrc&lt;/code&gt; novamente, basta adicionar uma linha à nossa chave &lt;code&gt;extends&lt;/code&gt; e uma à nossa chave &lt;code&gt;plugins&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nl"&gt;"extends"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="s2"&gt;"plugin:react/recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="s2"&gt;"airbnb"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="s2"&gt;"plugin:@typescript-eslint/recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="s2"&gt;"plugin:prettier/recommended"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"plugins"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="s2"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; 
  &lt;/span&gt;&lt;span class="s2"&gt;"react-hooks"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; 
  &lt;/span&gt;&lt;span class="s2"&gt;"@typescript-eslint"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; 
  &lt;/span&gt;&lt;span class="s2"&gt;"prettier"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Caso você queira ainda pode adicionar um arquivo &lt;code&gt;.prettierrc&lt;/code&gt; para modificar suas configurações do &lt;a href="https://prettier.io/docs/en/configuration.html" rel="noopener noreferrer"&gt;prettier&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Finalizando
&lt;/h2&gt;

&lt;p&gt;Essa é a configuração que costumo fazer para todos os meus projetos, para finalizar você pode adicionar regras customizadas à chave &lt;code&gt;rules&lt;/code&gt; dentro do arquivo &lt;code&gt;.eslintrc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Espero que tenham gostado, caso tenham dúvidas ou sugestões não deixem de comentar ou entrar em contato comigo, um grande abraço!&lt;/p&gt;

</description>
      <category>react</category>
      <category>eslint</category>
      <category>prettier</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Primeiro Post</title>
      <dc:creator>Otavio Messias Palma</dc:creator>
      <pubDate>Wed, 31 Mar 2021 22:24:25 +0000</pubDate>
      <link>https://dev.to/otaviopalma/primeiro-post-3e1b</link>
      <guid>https://dev.to/otaviopalma/primeiro-post-3e1b</guid>
      <description>&lt;p&gt;&lt;strong&gt;Fala Devs&lt;/strong&gt;, meu nome é Otávio, tenho 22 anos, sou formado em Engenharia de Computação e atualmente trabalho como desenvolvedor &lt;em&gt;Front-end&lt;/em&gt; &lt;em&gt;Web&lt;/em&gt; e &lt;em&gt;Mobile&lt;/em&gt; utilizando tecnologias como &lt;em&gt;Angular&lt;/em&gt;, &lt;em&gt;React&lt;/em&gt;, &lt;em&gt;Ionic&lt;/em&gt; e &lt;em&gt;React Native&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Pretendo começar a realizar alguns &lt;em&gt;freelancers&lt;/em&gt; agora que finalizei a faculdade e surgiu a ideia de documentar todas as minhas descobertas e desafios aqui no &lt;a href="https://dev.to"&gt;dev.to&lt;/a&gt; durante essa jornada. A ideia é desenvolver um canal de consulta que seja aberto a outros &lt;em&gt;devs&lt;/em&gt; que venham a cair nos mesmos problemas que eu.&lt;/p&gt;

&lt;p&gt;Espero conseguir manter uma frequência semanal de &lt;em&gt;posts&lt;/em&gt; e alcançar a maior quantidade de &lt;em&gt;devs&lt;/em&gt; precisando de ajuda! Fique a vontade para me contatar seja para tirar dúvidas ou só trocar uma ideia.&lt;/p&gt;

&lt;h6&gt;
  
  
  Foto de Capa by &lt;a href="https://unsplash.com/@florianolv?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Florian Olivo&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/programming?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;
&lt;/h6&gt;

</description>
      <category>frontend</category>
      <category>web</category>
      <category>mobile</category>
      <category>firstpost</category>
    </item>
  </channel>
</rss>
