<?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>Forem: Luís Von Muller</title>
    <description>The latest articles on Forem by Luís Von Muller (@luisvonmuller).</description>
    <link>https://forem.com/luisvonmuller</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%2F747861%2F0ea38013-24b0-45b7-9f19-06b7032fc3cc.jpg</url>
      <title>Forem: Luís Von Muller</title>
      <link>https://forem.com/luisvonmuller</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/luisvonmuller"/>
    <language>en</language>
    <item>
      <title>How to Create a Good Roadmap for 2022? </title>
      <dc:creator>Luís Von Muller</dc:creator>
      <pubDate>Sun, 02 Jan 2022 15:46:52 +0000</pubDate>
      <link>https://forem.com/luisvonmuller/how-to-create-a-good-roadmap-for-2022-4fn5</link>
      <guid>https://forem.com/luisvonmuller/how-to-create-a-good-roadmap-for-2022-4fn5</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Understanding Knowledge, setting up the road and evaluating it while following it.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’m kind of a Senior Software Developer, I’m 24 years old and I’ve been coding since my fourteens. But I had &lt;strong&gt;Up and Lows&lt;/strong&gt; during all this time, especially on the “&lt;strong&gt;learning&lt;/strong&gt;” path. &lt;/p&gt;

&lt;p&gt;&lt;small&gt;   I have a strong Bipolarity disorder and, while on some side of it, my TDAH shows up really hard. &lt;/small&gt;&lt;/p&gt;

&lt;p&gt;By that, for this year, I got myself into trying to fix the inconstant learning curve that I had and how to figure out a way to get myself following it along the whole year, by now, there’s no proof that this work, actually, by 2022’s I’ll be testing this on myself.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As the world changes, we should change to follow along. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thats why I’m proposing this, because we need to keep up, as professionals (no matters about if you’re or not a developer like myself, I think this could work for you too)&lt;/p&gt;

&lt;h2&gt;
  
  
  The “Knowledge" Ideia
&lt;/h2&gt;

&lt;p&gt;Imagine that all your knowledge stands in some of pyramid shape. Like this: &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%2Fy86c0kxkfwipds4blsrm.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%2Fy86c0kxkfwipds4blsrm.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take a good look on the concept, you will able to understand it.   There is “fundamentals”, by that I mean: “They gonna be the base” for the next role and so goes on. &lt;/p&gt;

&lt;p&gt;After sometime, you’ll get'em &lt;strong&gt;exercised so much&lt;/strong&gt; that you won't be in the need to really keep overlooking at them.&lt;/p&gt;

&lt;p&gt;After that, we get the &lt;strong&gt;applied concepts&lt;/strong&gt;. And those gonna be built already over other fundamentals, like the sharing of the culture with Math (Logic) by the language. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inter Topic Knowledge&lt;/strong&gt; is like what you’ll learn at some undergraduate process (or not, u can be a self-taught as I am.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intra Topic&lt;/strong&gt; stands for things like: some kind of extremely applied concept, for sure, they can be also more, like a programming framework, a way to tests things, and so goes on… &lt;/p&gt;

&lt;p&gt;But let me make sure you understand the idea of this: &lt;/p&gt;

&lt;h3&gt;
  
  
  You will not be able to grow further knowledge if the bases aren’t solid.
&lt;/h3&gt;

&lt;p&gt;You have the need to sometimes come back and check that you’re really know that, because if you don’t, &lt;strong&gt;everything could fall together&lt;/strong&gt;, giving yourself a really strong and bad &lt;strong&gt;breakdown&lt;/strong&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Whats the meaning of the triangle? Or how to apply a new one?
&lt;/h2&gt;

&lt;p&gt;The triangle gonna provide you some kind of good goal reached understandings, measurements and concept to follow along while learning. Something like this:  &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%2Fi5ha66gpnwi3jkialpdg.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%2Fi5ha66gpnwi3jkialpdg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This explains a lot by itself, but let me help:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You'll need to reach out to something new making an &lt;strong&gt;effort&lt;/strong&gt; to reach the new idea (concept).&lt;/li&gt;
&lt;li&gt;You'll need to right &lt;strong&gt;test&lt;/strong&gt; it after it, to make sure that you've &lt;strong&gt;learned by the effort made&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You will get the &lt;strong&gt;understandings&lt;/strong&gt; (bases) to reach your goal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a loop. For sure. Bigger the goal. Bigger the Stack, bigger the bases in need and so, bigger the energy. &lt;/p&gt;

&lt;p&gt;But, energy is what is our fuel (glucose). After sometime you will get used to it after the sureness of your Goal, and it will stack up as well like the others later on (like logic and language). &lt;/p&gt;

&lt;p&gt;Now, ask yourself: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Do I already have enough bases for my next learning triangle goal? If so, what I want to learn? And How I can make sure that My effort can be measured and understood by my own".&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Follow me on twitter to check out my own and if its working. :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/luisvonmuller" rel="noopener noreferrer"&gt;My Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks ;)&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>🔥 3 Coisinhas Legais  do ES12 (JavaScript 2021) 🌟</title>
      <dc:creator>Luís Von Muller</dc:creator>
      <pubDate>Wed, 01 Dec 2021 17:24:23 +0000</pubDate>
      <link>https://forem.com/luisvonmuller/3-coisinhas-legais-do-es12-javascript-2021-65e</link>
      <guid>https://forem.com/luisvonmuller/3-coisinhas-legais-do-es12-javascript-2021-65e</guid>
      <description>&lt;p&gt;Foram trazidas a vida no JavaScript (&lt;strong&gt;ECMAScript&lt;/strong&gt;) em 2021 várias novas opções de sintaxe e outros (&lt;strong&gt;ES12&lt;/strong&gt;), separei &lt;strong&gt;3&lt;/strong&gt; aqui à nível &lt;strong&gt;iniciante&lt;/strong&gt; para você usar em ambiente NodeJs ou similar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚠️ Antes de sair usando, por favor meu anjo 😇 lembre-se que nem todo navegador vai suportar isso, e não é para ser exportado por questões de compatibilidade. Por favor. 😮‍💨&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔢 Separador entre dígitos Numéricos:
&lt;/h2&gt;

&lt;p&gt;👉 Permite usar "_" para separar os números facilitando a leitura:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;bilhao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1000000000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;É um bilhão? É. Mas tá meio difícil de visualizar de primeira. Apenas o presidenciável &lt;strong&gt;Ciro Gomes&lt;/strong&gt; iria ver de primeira...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Quero ver onde vamos achar, "1 Bilhão"? - Gomes, Ciro&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Já com o &lt;strong&gt;ES12&lt;/strong&gt; podemos fazer o seguinte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;bilhao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nx"&gt;_000_000_000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;small&gt; Leitura de casas decimais facilitada :) &lt;/small&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 replaceAll() - Substituir todas as ocorrências de uma string em outra.
&lt;/h2&gt;

&lt;p&gt;👉 Vamos imaginar 🪄 que temos a seguinte string:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;strExemplo1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Javascript é alguma coisa, provavelmente Javascript é uma Linguagem de programação. Javascript não tem nada a ver com Java&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Se nós usarmos o método "replace" para trocar todas as ocorrências da palavra &lt;strong&gt;Javascript&lt;/strong&gt; por Typescript, ele só trocaria a primeira.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strExemplo1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Javascript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Typescript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// Remove apenas a primeira ocurrência&lt;/span&gt;
&lt;span class="c1"&gt;// Output: Typescript é alguma coisa, provavelmente Javascript é uma Linguagem de programação. Javascript não tem nada a ver com Java&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para fazermos isso precisaríamos usar uma Expressão regular dentro do método, isto é: &lt;strong&gt;REGEX&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strExemplo1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/Javascript/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Typescript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// Remove todas as ocorrências.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mas com o ES 12...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strExemplo1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replaceAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Javascript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Typescript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👀 Saída da execução (comparativo entre as 3 maneiras)... 👉&lt;br&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%2Fh3n9l8kas2ui066c0og0.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%2Fh3n9l8kas2ui066c0og0.png" alt="Output das 3 execuções supracitadas"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🤩 Atribuição em Nulo - &lt;strong&gt;Nullish Coalescing Assignment Operator&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;👉 Vamos imaginar 🪄 que temos o seguinte código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;algumaCoisa&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;nada&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos verificar se "nada" é nulo, e caso for, vamos atribuir o valor de "algumaCoisa" à ele.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;nothing&lt;/span&gt; &lt;span class="o"&gt;??=&lt;/span&gt; &lt;span class="nx"&gt;something&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Tá nulo, recebe 1.&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;something&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;something&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Retona true.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou seja, caso alguma coisa seja nula, recebe um valor informado.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Bom, por hoje é: só (◡‿◡✿)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vem pro meu Twitter &amp;amp; muito mais: &lt;a href="https://allmylinks.com/luisvonmuller" rel="noopener noreferrer"&gt;https://allmylinks.com/luisvonmuller&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;small&gt; "Meu estômago acha que todas as batatas são purê de batatas.". &lt;/small&gt;&lt;br&gt;
Beijão (っ˘з(˘⌣˘ ) &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>TypeScript: Any vs Unknown</title>
      <dc:creator>Luís Von Muller</dc:creator>
      <pubDate>Tue, 30 Nov 2021 17:08:00 +0000</pubDate>
      <link>https://forem.com/luisvonmuller/typescript-any-vs-unknown-4gk9</link>
      <guid>https://forem.com/luisvonmuller/typescript-any-vs-unknown-4gk9</guid>
      <description>&lt;p&gt;Se você acabou de chegar no mundão do &lt;strong&gt;TypeScript&lt;/strong&gt;, aqui está um conteúdo essencial, onde diferencia a ideia de 2 tipos primitivos. E também o porquê de que se você sair usando arbitrariamente &lt;strong&gt;&lt;em&gt;any&lt;/em&gt;&lt;/strong&gt; você não está &lt;em&gt;realmente&lt;/em&gt; usando o &lt;strong&gt;TypeScript&lt;/strong&gt; e deveria fazer apenas fazer em &lt;strong&gt;JavaScript&lt;/strong&gt;...&lt;/p&gt;

&lt;h2&gt;
  
  
  Vamos pegar um exemplo bem simples e a partir dele debater a ideia.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fulano&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;João&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;ciclado&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Augusto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao tipar a variável "Fulano" com any, nós literalmentes dizemos para o Transpilador/Compilador do Typescript que ela é literalmente: Qualquer coisa. &lt;/p&gt;

&lt;p&gt;Por exemplo, para ele, o seguinte código seria &lt;strong&gt;totalmente válido.&lt;/strong&gt;&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="nx"&gt;fulano&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;funcao&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Todavia, não existe essa função em fulano. Logo, em tempo de execução, isto é: em runtime, nos retornaria um erro (ou seja, ia dar merda). &lt;br&gt;
(ノಠ益ಠ)ノ彡┻━┻&lt;/p&gt;

&lt;p&gt;Já com o "Unknown" o negócio é diferente, a gente usa o propósito mor do TypeScript: Type Safety (Segurança de Tipos ante execução).&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="nx"&gt;ciclado&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;funcao&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Flg593zeiqkk0odo3aanj.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%2Flg593zeiqkk0odo3aanj.png" alt="Typescript error because of a calling on a unkown"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ou seja, o Transpilador/Compilador do Typescript não vai deixar esse código realmente deixar ser executado, porque, o sistemas de tipo não é capaz de garantir que realmente haja essa função dentro de ciclano.&lt;/p&gt;

&lt;h3&gt;
  
  
  Simples né? ¯_(ツ)_/¯
&lt;/h3&gt;

&lt;p&gt;Vem pro meu twitter &amp;amp; muito mais: &lt;a href="https://allmylinks.com/luisvonmuller" rel="noopener noreferrer"&gt;https://allmylinks.com/luisvonmuller&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aqui tem mais conteúdo sobre TypeScript em PT-BR: &lt;a href="https://luisvonmuller.gitbook.io/typescript-para-brasileiros/" rel="noopener noreferrer"&gt;https://luisvonmuller.gitbook.io/typescript-para-brasileiros/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt; Beijão (っ˘з(˘⌣˘ ) &lt;/small&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>O que o Jogo do Bicho tem a ver com o PHP 8.1? </title>
      <dc:creator>Luís Von Muller</dc:creator>
      <pubDate>Mon, 29 Nov 2021 23:47:42 +0000</pubDate>
      <link>https://forem.com/luisvonmuller/o-que-o-jogo-do-bicho-tem-a-ver-com-o-php-81-3lg5</link>
      <guid>https://forem.com/luisvonmuller/o-que-o-jogo-do-bicho-tem-a-ver-com-o-php-81-3lg5</guid>
      <description>&lt;p&gt;O PHP foi atualizado em uma &lt;strong&gt;&lt;em&gt;Major Update&lt;/em&gt;&lt;/strong&gt; para a versão 8.1. O que isso tem a ver com o &lt;strong&gt;Jogo do Bicho&lt;/strong&gt;? Vamos descobrir juntos. Mas, resumidamente, agora se você quer implementar o jogo do bicho em #PHP a nova nova versão deixa tudo mais &lt;strong&gt;seguro&lt;/strong&gt; e &lt;strong&gt;fácil&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Mas para &lt;strong&gt;atestar&lt;/strong&gt; o supracitado, vamos &lt;strong&gt;implementar&lt;/strong&gt; o Jogo do Bicho em PHP antes do 8.1 passo a passo e ao mesmo tempo compará-lo com as facilitações providas pelo PHP 8.1.&lt;br&gt;
&lt;strong&gt;(◡‿◡✿)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como "todos sabemos" o Jogo do Bicho possuí 25 bichos (animais). Então para isso precisaríamos alguma maneira de criar as possíveis "Apostas". &lt;/p&gt;
&lt;h2&gt;
  
  
  Antes do PHP 8.1
&lt;/h2&gt;

&lt;p&gt;Antecedente ao &lt;strong&gt;PHP 8.1&lt;/strong&gt;, não existia "Enumerações" &lt;em&gt;(ENUM)&lt;/em&gt; e pessoas desenvolvedoras precisavam (deviam) fazer mais ou menos o seguinte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ApostarNoBixo&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="no"&gt;AVESTRUZ&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* 1 */&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="no"&gt;AGUIA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* 2 */&lt;/span&gt;
    &lt;span class="cm"&gt;/* ...restante dos bichos ... */&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="no"&gt;URSO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="cm"&gt;/* 23 */&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="no"&gt;VEADO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="cm"&gt;/* 24 */&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="no"&gt;VACA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="cm"&gt;/* 25 */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$apostandoNoBixo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ApostarNoBixo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;jogarNoBixo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$apostandoNoBixo&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;AGUIA&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Parece bom? - Sim. É uma implementação válida &lt;small&gt;(muito similar a ideia de &lt;strong&gt;magic strings&lt;/strong&gt;)&lt;/small&gt;, todavia, a ideia principal é que não usemos classes para definir &lt;strong&gt;tipos&lt;/strong&gt;, no final de tudo, a função em questão, que executa a ação &lt;strong&gt;"jogarNoBixo"&lt;/strong&gt; (ou seja, faz mesmo a aposta) ainda precisa receber um número inteiro e não um &lt;strong&gt;estritamente&lt;/strong&gt; um tipo compatível a uma Aposta do Jogo Do Bicho (Inteiro de 1 até 25).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;jogarNoBixo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nv"&gt;$aposta&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$aposta&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nv"&gt;$aposta&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;match&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$aposta&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="mi"&gt;23&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Acertou'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="kc"&gt;PHP_EOL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
      &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"Errouuuuu"&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="kc"&gt;PHP_EOL&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;'Aposta inválida, dinheiro do Bixeiro.'&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;h2&gt;
  
  
  Com o PHP 8.1 ( ˘ ³˘)♥
&lt;/h2&gt;

&lt;p&gt;Com o PHP 8.1 foi trazido a vida a ideia das enumerações, isto é: criar um &lt;strong&gt;"tipo"&lt;/strong&gt; e facilitar ainda mais a nossa vida, até mesmo mantendo retro contabilidade com implementações antigas através de &lt;em&gt;backed enums&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  E como isso funciona?
&lt;/h3&gt;

&lt;p&gt;Esse exemplo (é um backed enum) e já deve te fornecer entendimento completo da ideia...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="n"&gt;enum&lt;/span&gt; &lt;span class="nc"&gt;PossiveisApostasNoBicho&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;int&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="no"&gt;AVESTRUZ&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* 1 */&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="no"&gt;AGUIA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* 2 */&lt;/span&gt;
    &lt;span class="cm"&gt;/* ...restante dos bichos ... */&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="no"&gt;URSO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="cm"&gt;/* 23 */&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="no"&gt;VEADO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="cm"&gt;/* 24 */&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="no"&gt;VACA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="cm"&gt;/* 25 */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;Daora. Mas e a função?&lt;/em&gt;&lt;/strong&gt; (☞ಠ_ಠ)☞&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;jogarNoBixo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;PossiveisApostasNoBicho&lt;/span&gt; &lt;span class="nv"&gt;$aposta&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&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="nf"&gt;match&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$aposta&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;PossiveisApostasNoBicho&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;URSO&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Acertou'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; 
    &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"Errouuuuu"&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="kc"&gt;PHP_EOL&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;Além da função agora ter um tipo em seu argumento único não primitivo, também ficou mais curta. E além disso, para usar ela não precisaríamos instanciar um objeto para isso, só faríamos o seguinte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;"Resultado"&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;jogarNoBixo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;PossiveisApostasNoBicho&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;URSO&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Acertou&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Massa né? Vem pro twitter para acompanhar o próximo: &lt;a href="https://twitter.com/luisvonmuller"&gt;★ Luís Von Müller #bolhaDev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;눈_눈 Aviso&lt;/strong&gt;: &lt;br&gt;
&lt;small&gt;&lt;br&gt;
Através deste artigo, em momento algum o Autor deseja fazer &lt;strong&gt;Endosso&lt;/strong&gt; do Jogo do Bicho ou de &lt;strong&gt;Jogos de Azar&lt;/strong&gt;. O autor apenas julga conveniente e facilitador (lê-se torna mais acessível) contextualizar culturalmente ao Brasil 🇧🇷. &lt;br&gt;
&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;br&gt;
Créditos:&lt;br&gt;
TopPng pelas correntes que PHP veste&lt;br&gt;
PHP pelo elefante&lt;br&gt;
PHP pela 8.1&lt;/small&gt;&lt;small&gt;&lt;small&gt;&lt;br&gt;
Parte da arte de fundo publicada publicamente sem licença de uso nenhuma explicitada pelo criador, utilizada na capa do artigo foi criada por: &lt;a href="https://twitter.com/aguiarbraz"&gt;@aguiarbraz&lt;/a&gt; - neste &lt;a href="https://twitter.com/aguiarbraz/status/1121193433434152960"&gt;tweet&lt;/a&gt;&lt;br&gt;
&lt;/small&gt;&lt;br&gt;
&lt;/small&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>braziliandevs</category>
      <category>devlive</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🤔 False, true, "Falsy" &amp; "Truthy" 👀</title>
      <dc:creator>Luís Von Muller</dc:creator>
      <pubDate>Wed, 17 Nov 2021 21:07:39 +0000</pubDate>
      <link>https://forem.com/luisvonmuller/false-true-falsy-truthy-47n9</link>
      <guid>https://forem.com/luisvonmuller/false-true-falsy-truthy-47n9</guid>
      <description>&lt;h1&gt;
  
  
  🤔 False, true, "Falsy" &amp;amp; "Truthy" 👀
&lt;/h1&gt;

&lt;h2&gt;
  
  
  ⚙️ Entendendo um pouco do contexto Geral.
&lt;/h2&gt;

&lt;p&gt;Na computação temos um Tipo chamado: "Booleano". O que é: Booleano? &lt;/p&gt;

&lt;p&gt;Aqui estamos falando tipo primitivo do TypeScript: "Boolean". (⊙.☉)7&lt;/p&gt;

&lt;p&gt;Ser do tipo (Booleano) significa que algum valor, isto é, alguma variável, constante ou qualquer coisa que possuí em si um valor desse &lt;strong&gt;tipo&lt;/strong&gt; pode ser: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Verdadeiro&lt;/strong&gt; (Isto é, &lt;em&gt;true&lt;/em&gt;) 👍&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Falso&lt;/strong&gt; (Isto é, &lt;em&gt;false&lt;/em&gt;) 👎&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O nome "Booleano" (&lt;em&gt;Boolean&lt;/em&gt; em &lt;strong&gt;TypeScript&lt;/strong&gt;) faz uma homenagem ao Matemático &amp;amp; Filósofo &lt;strong&gt;George Boole&lt;/strong&gt;, ele "construiu" a base algébrica necessária para a criação Lógica Algébrica que podemos usar para: Operações lógicas &lt;strong&gt;(em booleanos)&lt;/strong&gt; como &lt;a href="https://pt.wikipedia.org/wiki/Conjun%C3%A7%C3%A3o_l%C3%B3gica"&gt;conjunção&lt;/a&gt; (&lt;strong&gt;&amp;amp;&amp;amp;&lt;/strong&gt;), &lt;a href="https://pt.wikipedia.org/wiki/Disjun%C3%A7%C3%A3o_l%C3%B3gica"&gt;disjunção&lt;/a&gt; &lt;strong&gt;(||)&lt;/strong&gt;, &lt;a href="https://pt.wikipedia.org/wiki/Disjun%C3%A7%C3%A3o_exclusiva"&gt;disjunção exclusiva&lt;/a&gt; (&lt;strong&gt;(p &amp;amp;&amp;amp; !q) || (!p &amp;amp;&amp;amp; q)&lt;/strong&gt;), &lt;a href="https://pt.wikipedia.org/wiki/Equival%C3%AAncia_l%C3%B3gica"&gt;equivalência lógica&lt;/a&gt; (&lt;strong&gt;==&lt;/strong&gt;) e &lt;a href="https://pt.wikipedia.org/wiki/Nega%C3%A7%C3%A3o"&gt;negação&lt;/a&gt; &lt;strong&gt;(!)&lt;/strong&gt;, que correspondem a algumas das operações da &lt;a href="https://pt.wikipedia.org/wiki/%C3%81lgebra_booleana"&gt;álgebra booliana&lt;/a&gt; (É a parte da do conceito da &lt;strong&gt;Matemática Discreta&lt;/strong&gt;). &lt;/p&gt;

&lt;h3&gt;
  
  
  Fornecendo um exemplo básico ԅ(≖‿≖ԅ):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/** Vamos iniciar uma constante "Booleana" verdadeira */&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;constanteVerdadeira&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Boolean&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="cm"&gt;/** Vamos iniciar uma constante "Booleana" falsa através da inversão do seu valor boleano com o operador "!" */&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;constanteFalsa&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Boolean&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;constanteVerdadeira&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;constanteFalsa&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;constanteVerdadeira&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ambas as constantes são verdadeiras. ヽ(´▽`)/&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="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;constanteFalsa&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;constanteVerdadeira&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ao menos uma das constantes são falsas ( ಠ ʖ̯ ಠ )&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="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Nenhuma constante é verdadeira (҂◡_◡)&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🤔 Por que existe: "Falsy" ou "Truthy"?
&lt;/h2&gt;

&lt;p&gt;Na &lt;a href="https://pt.wikipedia.org/wiki/L%C3%B3gica"&gt;lógica&lt;/a&gt;, afirmações &lt;strong&gt;diferentes&lt;/strong&gt; são &lt;strong&gt;logicamente equivalentes&lt;/strong&gt; se tiverem o mesmo conteúdo lógico. Isto é, se elas tiverem o mesmo &lt;a href="https://pt.wikipedia.org/wiki/Valor_de_verdade"&gt;valor de verdade&lt;/a&gt; em todos os modelos. Também conhecido por "Tautologia", isto é, algo que é correspondente em termos lógicos.&lt;/p&gt;

&lt;h2&gt;
  
  
  👎 O que é o "Falsy" ou Errôneo/Falseáveis ? 
&lt;/h2&gt;

&lt;p&gt;➡️ &lt;strong&gt;Falsy&lt;/strong&gt; é um "&lt;strong&gt;pseudo tipo&lt;/strong&gt;" logicamente equivalente ao &lt;strong&gt;Valor Primitivo&lt;/strong&gt; &lt;strong&gt;false&lt;/strong&gt; para o &lt;strong&gt;JavaSript.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Os valores que seriam aceitos como &lt;strong&gt;false&lt;/strong&gt; seriam: 
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;0&lt;/strong&gt; - (O valor numérico Zero).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;0n&lt;/strong&gt; - (Um inteiro de GIGANTE cujo valor numérico é zero - um &lt;em&gt;&lt;strong&gt;bigInt&lt;/strong&gt;&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;null&lt;/strong&gt; - (O tipo primitivo &lt;strong&gt;Nulo&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;undefined&lt;/strong&gt; - (Algo que não possui valor atribuído, isto é, &lt;strong&gt;indefinido&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NaN&lt;/strong&gt; (&lt;em&gt;&lt;strong&gt;Not-a-Number&lt;/strong&gt;&lt;/em&gt; - algo que não é um número &lt;strong&gt;pertencente&lt;/strong&gt; ao conjuntos dos reais)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"" ou ''&lt;/strong&gt; - (Uma cadeia de &lt;strong&gt;caracteres vazia&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Segue a  prova do supracitado (☞ﾟヮﾟ)☞ 
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;inteiroDeValorNumericoZero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;floatDeValorNumericoZero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;inteiroGrandeComValorNumericoZero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bigint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;BigInt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nulo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;indefinido&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;naoNumero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kc"&gt;NaN&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//Sim, o tipo de NaN é "numero" ¯\_(ツ)_/¯&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cadeiaDeCaracteresVazia&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;valoresInexatos&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nx"&gt;inteiroDeValorNumericoZero&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;floatDeValorNumericoZero&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;inteiroGrandeComValorNumericoZero&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;nulo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;indefinido&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;naoNumero&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;cadeiaDeCaracteresVazia&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nx"&gt;valoresInexatos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;valor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;valor&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Verídico&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Errôneo/Falseáveis&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
   O que é "Truthy" ou Verídico? 
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Truthy&lt;/strong&gt; é um "&lt;strong&gt;pseudo tipo&lt;/strong&gt;"  logicamente equivalente ao &lt;strong&gt;Valor Primitivo&lt;/strong&gt; &lt;strong&gt;true&lt;/strong&gt; para o &lt;strong&gt;JavaSript.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Os valores que seriam aceitos como &lt;strong&gt;true&lt;/strong&gt; seriam: 
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;'0'&lt;/strong&gt; ou &lt;strong&gt;"0"&lt;/strong&gt; - (Uma &lt;strong&gt;cadeia de caracteres&lt;/strong&gt; com o Valor numérico &lt;strong&gt;zero&lt;/strong&gt; dentro dela).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;'false'&lt;/strong&gt; ou &lt;strong&gt;"false"&lt;/strong&gt; (...) - (Uma cadeira de caracteres com a palavra &lt;strong&gt;"&lt;em&gt;false"&lt;/em&gt;&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[]&lt;/strong&gt;_ - (Um &lt;strong&gt;"vetor"&lt;/strong&gt; ("&lt;strong&gt;array&lt;/strong&gt;" vazio), isto é, sem elementos presentes dentro de si).&lt;/li&gt;
&lt;li&gt;{} - (Um &lt;strong&gt;objeto&lt;/strong&gt; sem nenhuma propriedade.)&lt;/li&gt;
&lt;li&gt;()=&amp;gt;{} - (Uma definição de função anônima ou não.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Segue a  prova do supracitado (☞ﾟヮﾟ)☞ 
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cadeiaDeCaracteresComZero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cadeiaDeCarcteresComAPalavraFalse&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;false&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;vetorVazio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;funcaoNomeada&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Function&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//vazia&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;valoresVeridicos&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nx"&gt;cadeiaDeCaracteresComZero&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;cadeiaDeCarcteresComAPalavraFalse&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;vetorVazio&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;funcaoNomeada&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nx"&gt;valoresVeridicos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;valor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;valor&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Verídico&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Errôneo/Falseado&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title> 🇧🇷 Guia de Estilos para TypeScript 🎨</title>
      <dc:creator>Luís Von Muller</dc:creator>
      <pubDate>Wed, 17 Nov 2021 20:58:22 +0000</pubDate>
      <link>https://forem.com/luisvonmuller/guia-de-estilos-para-typescript-2ahb</link>
      <guid>https://forem.com/luisvonmuller/guia-de-estilos-para-typescript-2ahb</guid>
      <description>&lt;p&gt;🔥 Este é um &lt;strong&gt;Guia não oficial&lt;/strong&gt; e você pode opinar através do repositório de GitHub para juntos chegarmos a melhor definição do Ideal! &lt;strong&gt;Vamos colaborar? 💪&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  👉 Navegação por tópico facilitada!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="//./#variaveis-e-funcoes"&gt;⭐️ Variáveis &amp;amp; Funções&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#class"&gt;📦 Classes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#interfaces"&gt;🔌 Interfaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#tipos"&gt;🌟 Tipos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#namespaces"&gt;😳 Namespaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#enum"&gt;🔢 Enum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="//./#null-vs-undefined"&gt;📭 null vs  😱 undefined&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#formatacao"&gt;📑 Formatação&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#sobre-aspas..."&gt;🤔 Aspas simples vs Aspas Duplas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="//./#ponto-and-virgula"&gt;⚙️ Uso de ponto e vírgula ao final de linhas &lt;strong&gt;" ; "&lt;/strong&gt;&lt;/a&gt;****&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#sugestao-para-boa-nomeacao-de-arquivos."&gt;📂 Uma sugestão para uma boa nomeação de Arquivos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#tipo-ou-interface"&gt;🤨 Tipo vs Interface&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#anotacao-do-tipo-array"&gt;👯‍♀️ Anotação de Tipos para Array&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//./#comparadores-e"&gt;⚠️ Comparadores, "==" vs "==="&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⭐️​ Variáveis e Funções:
&lt;/h2&gt;

&lt;p&gt;Use &lt;em&gt;&lt;strong&gt;camelCase&lt;/strong&gt;&lt;/em&gt; para nomear variáveis e funções&lt;/p&gt;

&lt;h4&gt;
  
  
   Má nomenclatura 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;FulanoVariavel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Aqui está errado.. ( ఠ ͟ʖ ఠ )&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;CiclanoFuncao&lt;/span&gt;&lt;span class="p"&gt;(){}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Boa nomenclatura ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fulanoVariavel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Aqui está daora! (✿◠‿◠)&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;ciclanoFuncao&lt;/span&gt;&lt;span class="p"&gt;(){}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📦 Class
&lt;/h2&gt;

&lt;p&gt;Use &lt;em&gt;&lt;strong&gt;PascalCase&lt;/strong&gt;&lt;/em&gt; para nomear suas classes! (Ou use programação funcional 👀)&lt;/p&gt;

&lt;h4&gt;
  
  
   Má nomenclatura 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;fulano&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Boa nomenclatura ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;Fulano&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;em&gt;&lt;strong&gt;camelCase&lt;/strong&gt;&lt;/em&gt; para as propriedades e métodos de suas classes! 🔥&lt;/p&gt;

&lt;h4&gt;
  
  
  Má nomenclatura 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;fulano&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;DeTal&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="nx"&gt;Ciclano&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;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Boa nomenclatura ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;Fulano&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;deTal&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="nx"&gt;ciclano&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;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🔌​ Interfaces:
&lt;/h2&gt;

&lt;p&gt;Use &lt;em&gt;&lt;strong&gt;PascalCase&lt;/strong&gt;&lt;/em&gt; para nomear a Interface ⚙️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;em&gt;&lt;strong&gt;camelCase&lt;/strong&gt;&lt;/em&gt; para nomear seus membros 🥰&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não use o Prefixo "I", exemplo: IfuncaoFulano... 😡 &lt;/p&gt;

&lt;h4&gt;
  
  
   Má nomenclatura 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;IFulano&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="nl"&gt;DeTal&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="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Boa nomenclatura ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Fulano&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="nl"&gt;deTal&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="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🌟 Tipos 
&lt;/h2&gt;

&lt;p&gt;Use &lt;em&gt;&lt;strong&gt;PascalCase&lt;/strong&gt;&lt;/em&gt; para nomear o seu Tipo ⚙️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;em&gt;&lt;strong&gt;camelCase&lt;/strong&gt;&lt;/em&gt; para nomear as propriedades do seu tipo! 🥰&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
   Má nomenclatura 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;fulano&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;DeTal&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="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Boa nomenclatura ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Fulano&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;deTal&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="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  😳 Namespaces 
&lt;/h2&gt;

&lt;p&gt;Use*&lt;em&gt;&lt;code&gt;PascalCase&lt;/code&gt;&lt;/em&gt;*&lt;code&gt;para nomear os "Namespaces" - ⭐️ Padrão do time do TS.&lt;/code&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Má nomenclatura 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nx"&gt;fulanoDeTal&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;h4&gt;
  
  
  Boa nomenclatura ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nx"&gt;FulanoDeTal&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;h2&gt;
  
  
  🔢 Enum 
&lt;/h2&gt;

&lt;p&gt;Use_&lt;strong&gt;&lt;code&gt;PascalCase&lt;/code&gt;&lt;/strong&gt;_&lt;code&gt;para nomear os Enums.&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;em&gt;&lt;strong&gt;&lt;code&gt;PascalCase&lt;/code&gt;&lt;/strong&gt;&lt;/em&gt;&lt;code&gt;para nomear seus subtipos/valores.&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Má nomenclatura 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;enum&lt;/span&gt; &lt;span class="nx"&gt;jogodoBicho&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;avestruz&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;borboleta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;cachorro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;// Não há endosso do Jogo do Bicho. Apenas é algo contextual que todo Brasileiro entenderia.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Boa nomenclatura ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;enum&lt;/span&gt; &lt;span class="nx"&gt;JogoDoBicho&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;Avestruz&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;Borboleta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;Cachorro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;// Não há endosso do Jogo do Bicho. Apenas é algo contextual que todo Brasileiro entenderia.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  😅 Null vs Undefined 👀
&lt;/h2&gt;

&lt;p&gt;Tente não usar nenhum deles para indisponibilidade explícita! ⭐️&lt;/p&gt;

&lt;h4&gt;
  
  
  Mal caso de uso 🚫
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;pontos&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Bom caso de uso  ✅​ 
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;pontos&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;777&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;//  &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em suma: Precisa informar que uma propriedade é pode ser "indefinida"? Use o operador "?" antecedendo o seu tipo! 🥰&lt;/p&gt;

&lt;h3&gt;
  
  
  👉 Retorno de funções? 🤔
&lt;/h3&gt;

&lt;p&gt;Mal caso de uso 🚫&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;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bom caso de uso  ✅​ &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;return&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por quê? Sugiro você consultar a página Sobre False, True, Truthy &amp;amp; Falsy. 🥰&lt;/p&gt;

&lt;h3&gt;
  
  
  🤨​ Callbacks?
&lt;/h3&gt;

&lt;p&gt;Use &lt;em&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/em&gt; quando for parte da API ou de sua convenção usar. &lt;/p&gt;

&lt;p&gt;É quase em um consenso em Node.js, por exemplo: &lt;strong&gt;&lt;code&gt;error&lt;/code&gt;&lt;/strong&gt; é &lt;strong&gt;&lt;code&gt;null&lt;/code&gt;&lt;/strong&gt;&lt;code&gt;em chamadas do&lt;/code&gt; &lt;em&gt;&lt;strong&gt;NodeBack.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Mal caso de uso 🚫&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="nx"&gt;callbackDeAlgo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bom caso de uso  ✅​ &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="nx"&gt;callbackDeAlgo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  E como verificar isso aí? 😅
&lt;/h3&gt;

&lt;p&gt;Cheque por  "Truthy" em objetos sendo &lt;strong&gt;null&lt;/strong&gt; ou &lt;strong&gt;undefined&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Mal caso de uso 🚫&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;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// e se for undefined? &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bom caso de uso  ✅​ &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;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// é Válido tanto para undefined quanto para o null&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  👉 Um exemplo um pouco mais completo sobre verificação 🔥
&lt;/h3&gt;

&lt;p&gt;Use "==" null ou "!=" null. Não use "===" ou "!==" para checar por null ou undefined quando querendo verificar tipos primitivos porque funciona apenas nos tipos primitivos supracitados e não para valores "Falseáveis", como por exemplo: 0, false, etc. &lt;/p&gt;

&lt;p&gt;Mal caso de uso 🚫&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;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Não garante que seja apenas nullo. Pode ser um valor Falseável.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bom caso de uso  ✅​ &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;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Garante que é um valor de tipo primitivo (ou seja, null ou undefined mas não falsy).&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📑 Formatação
&lt;/h2&gt;

&lt;p&gt;O Compilador do &lt;em&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/em&gt; já fornece um bom serviço de formatação estrutural, o que já é bom o suficiente para diminuir o esforço mental do desenvolvedor (ou do time). Todavia, você também pode usar o &lt;strong&gt;tsfmt&lt;/strong&gt; no terminal (linha de comando para formatar seu código) - e também está disponível como plugin para várias &lt;strong&gt;IDES (vscode, etc).&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;👉 Só um exemplo que eu acho pertinente, ou melhor, uma boa prática:&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fulano&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Ciclano&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No caso, usamos um espaço depois da definição do tipo... &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
let variavel:(espaço)tipo(espaço)=(espaço)valor(ponto e virgula)
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💬 Sobre Aspas...
&lt;/h2&gt;

&lt;p&gt;Prefira usar aspas simples (single quotes) ao invés de aspas duplas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Times grandes que usam JS/TS o fazem. É uma convenção quasae que de mercado, também é o sugerido pelo time do "Prettier".
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;nomeDoSujeito&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Luís Von Müller&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Todavia, muita vezes em inglês precisamos usar o a single quote para conjugar um verbo: "I'm"&lt;/p&gt;

&lt;p&gt;Se a aspas simples não lhe cabe. Use então "`" &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faça o uso do string template do JS ao invés de concatenar variáveis strings através var + "..."  + var2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;typescript&lt;br&gt;
let nomeDoSujeito: string = 'Luís Von Müller';&lt;br&gt;
console.log(&lt;/code&gt;Quem escreveu? ${nomeDoSujeito}&lt;code&gt;)&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Sobre outras coisas como usar "tabs" ou espaço. O sugerido para JS é 2 espaços (e muitas companias como Facebook, Airbnb, google seguem esse padrão. Mas o time do TS usa 4 e o do VScode também 😅. Isso é variável e de gosto muito mais pessoal ou convenção própria e do teu time 🥰&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Mas eu uso tabs configuradas como 4 espaços)&lt;/em&gt; 🤗&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️​ Ponto &amp;amp; Vírgula;
&lt;/h2&gt;

&lt;p&gt;Use o ponto e vírgula, por quê? &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pontos e vírgulas explícitos ajudam os identadores (tsfmt/prettier) a identificar e "estruturar" seu código. &lt;/li&gt;
&lt;li&gt;A falta de ponto e vírgula pode ser incômodo para novos desenvolvedores em TS. Já que a maioria das linguagens o implementa. (Houve um debate sobre como isso pode ser "incomodo" para novos desenvolvedores e outros. &lt;a href="https://github.com/tc39/ecma262/pull/1062"&gt;https://github.com/tc39/ecma262/pull/1062&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Empresas grandes usam em suas implementações, ex: Google/Angular - Facebook/React - Microsoft/VScode...&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🗂 Sugestão para boa nomeação de arquivos.
&lt;/h2&gt;

&lt;p&gt;Essa aqui é uma baita de uma discussão, depende muito do que ambiente você está e se você está seguindo o padrão de nomeação de um framework, ex: React para Componentes. Mas no geral o que a maioria dos times usa é o seguinte: &lt;/p&gt;

&lt;p&gt;Use &lt;em&gt;&lt;strong&gt;camelCase para nomear seus arquivos, exemplo:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;utils.ts&lt;/li&gt;
&lt;li&gt;helpersDaora.ts&lt;/li&gt;
&lt;li&gt;mapeamentoEndPointsDaApi.ts&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤨​ Tipo ou Interface?
&lt;/h2&gt;

&lt;p&gt;Tipos devem ser usados para definir, adivinha? Tipos. Ou seja, se você tem uma função, ela retorna um valor. E esse valor possui um tipo. Mas essa função, também recebe algo. E esse algo, também são valores, ou seja, também podem ser tipos. Mas a "meta" ideia é que interface forneça uma interface 😅.  Eu acho que esse exemplo clarifica...&lt;/p&gt;

&lt;p&gt;Quando usar qual?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tipos: Precisa de União ou Interseção de tipos (e provavelmente você vai preferir Tipos também se quiser implementar alguns tipos de mapeamentos Genéricos de objetos).&lt;/li&gt;
&lt;li&gt;Interfaces: quando você precisa dizer que algo "implements" ou "extends", como por exemplo uma classe, para receber argumentos em uma função, ou até mesmo para quando você tá querendo criar alguma função extremamente composta bem maneira 👏. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;😅 Ou do jeito que você se sentir mais confortável e seguro para a implementação que está fazendo! 👀&lt;/p&gt;

&lt;p&gt;Aqui em baixo, eu poderia definir a função de outra maneira, optei por essa.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`typescript&lt;br&gt;
/** Definimos a interface (ou contrato) de uso da função */&lt;br&gt;
interface DizerOi {&lt;br&gt;
    nome: string;&lt;br&gt;
    sobrenome?: string;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;/**  Definimos que o tipo de retorno da função como uma Array de Strings */&lt;br&gt;
type DisseOi = string[];&lt;/p&gt;

&lt;p&gt;/** Vamos dizer oi 10x! e retornar um array! */&lt;br&gt;
const dizerOi = ({nome, sobrenome}: DizerOi): DisseOi =&amp;gt; {&lt;br&gt;
    return [...Array(10).keys()].map((key) =&amp;gt; {&lt;br&gt;
        return &lt;code&gt;Olá ${nome} ${sobrenome ?? ''}&lt;/code&gt;;&lt;br&gt;
    })&lt;br&gt;
} &lt;/p&gt;

&lt;p&gt;console.log(dizerOi({nome: 'Luís'}));&lt;br&gt;
`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  👯‍♀️ Anotação do tipo Array 👯‍♂️
&lt;/h2&gt;

&lt;p&gt;Use tipo[] ao invés de Array&amp;lt;tipo&amp;gt;&lt;/p&gt;

&lt;p&gt;Mal caso de uso 🚫&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;typescript&lt;br&gt;
let variosNumeros: Array&amp;lt;number&amp;gt; = [1,2,3,4,5,6,7];&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Bom caso de uso  ✅​ 
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;typescript&lt;br&gt;
let variosNumeros: number[] = [1,2,3,4,5,6,7];&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠️​ Comparadores "===" e "=="
&lt;/h2&gt;

&lt;h4&gt;
  
  
  😴​  Relaxa amigo! Você tá usando TypeScript. Pode usar "===" tranquilamente!
&lt;/h4&gt;

&lt;h3&gt;
  
  
  🥰 Obrigado por ler até aqui!
&lt;/h3&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>typescript</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
