<?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: hevertonam</title>
    <description>The latest articles on DEV Community by hevertonam (@heverton).</description>
    <link>https://dev.to/heverton</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%2F887692%2F4ff6df5b-5c5c-4cae-8d11-f0ed50fad370.png</url>
      <title>DEV Community: hevertonam</title>
      <link>https://dev.to/heverton</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/heverton"/>
    <language>en</language>
    <item>
      <title>Como configurar ts-node-dev no typeScript?</title>
      <dc:creator>hevertonam</dc:creator>
      <pubDate>Fri, 15 Jul 2022 20:13:08 +0000</pubDate>
      <link>https://dev.to/heverton/como-configurar-ts-node-dev-no-typescript-5ech</link>
      <guid>https://dev.to/heverton/como-configurar-ts-node-dev-no-typescript-5ech</guid>
      <description>&lt;p&gt;Nesse artigo irei falar sobre como resolver o problema quando o 'yarn tsc' é executado para converter o arquivo typeScript para JavaScript de forma manual, ocasionando a criação de um arquivo javaScript para cada arquivo typeScript criado!&lt;/p&gt;

&lt;p&gt;instalar biblioteca ts-node-dev: &lt;/p&gt;

&lt;p&gt;Essa biblioteca é responsável por auxiliar a rodar o serviço fazendo a conversão do typescrip para o javascript de forma automatica.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yarn add ts-node-dev -D&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Em package.json deverá ser incluido o seguinte script:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
     "dev": "ts-node-dev src/server.ts"
    }, 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Assim a ferramenta já vai nos auxiliar para que não fique criando um arquivo .js toda a vez que rodar o 'yarn trc' &lt;br&gt;
quando rodar o 'yarn dev' o servidor já estara rodando de forma automatica&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yarn dev&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>criando API REST com typeScript utilizando o NodeJS</title>
      <dc:creator>hevertonam</dc:creator>
      <pubDate>Thu, 14 Jul 2022 19:48:47 +0000</pubDate>
      <link>https://dev.to/heverton/criando-api-com-typescript-3h8g</link>
      <guid>https://dev.to/heverton/criando-api-com-typescript-3h8g</guid>
      <description>&lt;p&gt;Nesse artigo irei falar sobre uma introdução ao typeScript e criar uma API REST Express.&lt;/p&gt;

&lt;p&gt;Para criação da  API irei utilizar o Visual Studio Code (VSC) e o INSOMNIA.&lt;/p&gt;

&lt;p&gt;Criando estrutura novo projeto&lt;/p&gt;

&lt;p&gt;Abrir o terminal e criar uma nova pasta que será a raiz do projeto.&lt;/p&gt;

&lt;p&gt;Iniciar o yarn para trazer mais funcionalidades e vantagens para o desenvolvimento&lt;br&gt;
&lt;code&gt;yarn init -y&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;abrir o visual studio code&lt;br&gt;
&lt;code&gt;code .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Instalar as dependencias do express&lt;br&gt;
&lt;code&gt;yarn add express&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Assim que as dependencias forem instaladas irá ser criado o package.json&lt;/p&gt;

&lt;p&gt;Criar pasta 'src' e dentro dela criar um arquivo &lt;code&gt;server.ts&lt;/code&gt; esse arquivo tem a extensão do typeScript o VSC já identifica esse padrão.&lt;/p&gt;

&lt;p&gt;Abrir o arquivo &lt;code&gt;server.ts&lt;/code&gt; e importar o express&lt;br&gt;
&lt;code&gt;import express from 'express'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Adicionar biblioteca do express com dependencia de desenvolvimento&lt;br&gt;
&lt;code&gt;yarn add@types/express - D&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ao importar a biblioteca do express o typeScript traz tudo que tem disponivel para ser utilizado. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GCxZwl6e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aviqscuitgly5u3mr2vh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GCxZwl6e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aviqscuitgly5u3mr2vh.png" alt="Image description" width="543" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Necessário converter o arquivo 'server.ts' para codigo JavaScript de uma forma que o node.js consiga entender tudo aquilo que esta sendo declarado para executar o arquivo. Para fazer isso instalar com dependência de desenvolvimento &lt;/p&gt;

&lt;p&gt;&lt;code&gt;yarn add typescript -D&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Inicializar o typeScript. Será criado o arquivo tsconfig.json que é um arquivo de configuração&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yarn tsc --init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Converter o código para o javascript. Ao fazer isso irá criar um novo arquivo com o formado javaScript&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yarn tsc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ao executar o &lt;code&gt;yarn tsc&lt;/code&gt; é criado um arquivo dentro da pasta local. Se tiver vários arquivos ira criar um arquivo com formato js para cada um ocasionando em confusão.&lt;/p&gt;

&lt;p&gt;Para resolver esse problema ver o &lt;a href="https://dev.to/heverton/como-configurar-ts-node-dev-no-typescript-5ech"&gt;artigo&lt;/a&gt; que fala sobre a configuração de uma ferramenta que faça a conversão de forma automática.&lt;/p&gt;

&lt;p&gt;Criar uma pasta chamada rotas onde iremos começar separando as rotas da aplicação.&lt;/p&gt;

&lt;p&gt;Criar um arquivo &lt;code&gt;modelo.Rotas.ts&lt;/code&gt;. Importar dentro do express o Router (Router é uma interface)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import {Router} from 'express'&lt;/code&gt;   &lt;/p&gt;

&lt;p&gt;criar constante para rota&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const rota = Router();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;exportar a rota para ser acessivel dentro de outra classe&lt;/p&gt;

&lt;p&gt;&lt;code&gt;export {modeloRota}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Criar uma rota de post. Para a rota funcionar corretamente a API REST precisa que o recurso seja bem definido, e o recurso sera o &lt;code&gt;modelo&lt;/code&gt;. A rota vai receber as informações de dentro do request e a partir dai vai fazer o cadastro do modelo.&lt;/p&gt;

&lt;p&gt;criar um array de modelo &lt;/p&gt;

&lt;p&gt;&lt;code&gt;const modelo = [];&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;usar modelo.push passando o nome e a descrição. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    modelo.push({
    nome,
    descricao
      }); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;dar um retorn com o status 201 informando que um objeto foi criado.&lt;br&gt;
        &lt;code&gt;return response.status(201).send();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Abrir o arquivo &lt;code&gt;server.ts&lt;/code&gt; importar a rota&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import { modeloRota } from './rotas/modelo.rotas';&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;usar o a rota&lt;/p&gt;

&lt;p&gt;&lt;code&gt;app.use(modeloRota);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Abrir o Insomnia&lt;/p&gt;

&lt;p&gt;criar um arquivo e definir metodo criar, do tipo post, que vai receber um json e passar os dados desejados para que a aplicação receba esses valores:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bwy6WJMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ixg0k6oxf7g2bl1zyhrr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bwy6WJMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ixg0k6oxf7g2bl1zyhrr.png" alt="Image description" width="435" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O servidor do VSC precisa estar iniciado para que o insomnia retorno sucesso:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yarn dev&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Se o servidor rodar com sucesso basta clicar em 'send' no insomnia e sera executado com suscesso. Assim o metodo de cadastro de modelo já esta funcionando.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>O que é Typescript?</title>
      <dc:creator>hevertonam</dc:creator>
      <pubDate>Tue, 05 Jul 2022 20:25:45 +0000</pubDate>
      <link>https://dev.to/heverton/o-que-e-typescript-4kg0</link>
      <guid>https://dev.to/heverton/o-que-e-typescript-4kg0</guid>
      <description>&lt;p&gt;É Uma linguagem open source criada pela microsoft em 2012.&lt;/p&gt;

&lt;p&gt;É Um superset do javaScript, ou seja é um javaScript com funcionalidades a mais. &lt;/p&gt;

&lt;p&gt;Possui tipagem estática o que impossibilita a alteração do tipo da variavel depois de sua criação.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zsJASSOH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zs87etul9masp2kmicr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zsJASSOH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zs87etul9masp2kmicr3.png" alt="Image description" width="406" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No exemplo acima temos duas situações onde não permite a mudança do tipo da variavel.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;se passar string onde esperar um number dara erro ((soma(“1”, “2”))&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;se passar apenas um parametro onde espera por 2 também da erro(soma(1)); &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A linguagem pode ser usada no lado do cliente e no lado do servidor (Node.js ou Deno).&lt;/p&gt;

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