Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TypeScript: Desvendando a Magia da Tipagem

TypeScript: Desvendando a Magia da Tipagem

Você já ouviu falar em TypeScript, mas não sabe por onde começar? Cansado de bugs e código inseguro? Não se preocupe, domine a tipagem estática do TypeScript e descubra como transformar sua maneira de programar, escrevendo códigos mais robustos e confiáveis e dando um salto na sua carreira como pessoa desenvolvedora.

Palestra apresentada no The Developers Conference (TDC) na Trilha de Javascript e Node.JS no da 19/09/2024 às 14h20.

Monica Craveiro de Menezes

September 24, 2024
Tweet

More Decks by Monica Craveiro de Menezes

Other Decks in Programming

Transcript

  1. Globalcode – Open4education Trilha – JavaScript e Node.JS Monica Craveiro

    de Menezes TypeScript: Desvendando a Magia da Tipagem
  2. Globalcode – Open4education Carioca da gema, ex-patinadora artística, gamer, #TechMaromba,

    já fiz muitos cálculos por aí mas hoje em dia fico “só nos compiuter”, amante de energético e aspirante a Influencer Tech. Quem sou eu? @mocraveirodev Monica Craveiro de Menezes
  3. Globalcode – Open4education O que é TypeScript? “Superset” do Javascript

    • Criado em 2010 • Desenvolvido e mantido pela Microsoft • Linguagem compilada e convertida para Javascript • Possui Tipagem Estática • Serve para Front-end e Back-end • Pode ser utilizado com Frameworks/Libs Mas antes disso…
  4. Globalcode – Open4education JavaScript • Criado em 1995 • Criado

    em 10 dias • Brendan Eich da NetScape • Tem como base o ECMAscript desde 2015 • Atualizações anuais pelo TC39 • Compatibilidade com Versões anteriores • Tipagem dinâmica • JSDoc A linguagem evoluiu muito desde sua criação, mas…
  5. Globalcode – Open4education TIPAGEM DINÂMICA VS TIPAGEM ESTÁTICA • Tipo

    não é explicitamente declarado • Tipo associado ao valor da variável • Tipo pode ser alterado • Tipo é explicitamente declarado • Tipo não pode ser alterado • O valor da variável deve respeitar o tipo definido • Possui compilador
  6. Globalcode – Open4education COMPILADORES • Verificam variáveis, tipos e valores

    • Apontam possíveis erros • TypeScript Compiler (TSC)
  7. Globalcode – Open4education POR QUE USAR TYPESCRIPT • Evita situações

    como essa: • Permite usar sintaxe moderna pois será convertida para uma versão compatível em JavaScript
  8. Globalcode – Open4education VANTAGENS VS DESVANTAGENS • Recursos avançados do

    JavaScript • Previne erros de tipagem • Mais fácil identificar Bugs • Código mais legível • Linguagem popular • É mais verboso • Demanda mais tempo • Curva de aprendizado • Precisa ser compilado
  9. Globalcode – Open4education COMO INSTALAR O TYPESCRIPT ? • Precisa

    ter o Node.JS instalado • Utilize o npm • O nome do pacote é typescript • Instalar de forma global com a flag -g • Após instalação, o comando tsc fica disponível e podemos utilizar para executar/compilar o TS em qualquer lugar na nossa máquina.
  10. Globalcode – Open4education COMO INICIAR UM PROJETO TYPESCRIPT? • Usar

    o comando tsc - -init • Vai criar o arquivo de configuração tsconfig.json
  11. Globalcode – Open4education PRINCIPAIS CONFIGURAÇÕES DO TSCONFIG.JSON • Target: Define

    em qual versão do JS o TS será compilado. Ex.: ES3, ES2015, ES2016, ESNext • Module: Define o Tipo de import/export que será usado. Ex.: commonjs, ESNext • outDir: Pasta onde ficarão os arquivos compilados. Ex.: “./dist” • rootDir: Localização dos arquivos TS. Ex.: “./src” • removeComments: Remove os comentários do código. Ex.: true ou false • allowJs: Permite ter arquivos JS. Ex.: true ou false • checkJs: Verifica erros também em arquivos JS. Ex.: true ou false Você não precisa saber todos inicialmente, basta saber os principais!
  12. Globalcode – Open4education tsc Criando o primeiro código em TypeScript

    • Utilizar a extensão *.ts para identificar um arquivo TypeScript. • Arquivos TypeScript aceitam código JavaScript. • Para compilar o arquivo TypeScript para JavaScript, basta utilizar o comando tsc no terminal.
  13. Globalcode – Open4education Tipagem por Declaração ou Inferência • Declaração:

    Quando o tipo da variável é declarado explicitamente. • Inferência: O tipo da variável é definido de acordo com valor atribuído a ela. • Caso teste declarar um valor diferente do tipo designado para variável, o TypeScript apresentará uma mensagem de erro em tempo de desenvolvimento. Obs.: Caso tente compilar o arquivo com erro, a mesma mensagem aparecerá no terminal. Declaração Inferência
  14. Globalcode – Open4education Tipos Básicos • string • number •

    boolean • any • [ ] • { } • null • undefined • Tuplas
  15. Globalcode – Open4education Intersections Usada quando precisamos que a variável

    possua mais de um tipo. Enum É um conjunto de valores constantes pré-definido. Type Assertions Informa ao compilador sobre o tipo da variável. Não redefine o tipo, apenas informa ao compilador que, naquele momento, o valor será modificado.
  16. Globalcode – Open4education Funções • Podemos definir qual será o

    tipo dos seus parâmetros e do seu retorno. Caso não sejam definidos, o tipo será inferido. • Qualquer tipo conhecido pode ser atribuído aos parâmetros e retorno. • Poderá haver intersecção de tipos. • O tipo void é atribuído à funções que não tem retorno.
  17. Globalcode – Open4education Type • Cria um tipo pré-definido e

    reutilizável para ser atribuído da mesma forma que fazemos com os tipos básicos. • Caso tenha alguma propriedade que seja opcional, podemos usar o ? para defini-la. • Também podemos usar o ? caso o parâmetro de uma função for opcional. • Ao usar o ! estamos garantindo que a variável existe e não é nula.
  18. Globalcode – Open4education Interfaces • Define uma estrutura ou forma

    de um objeto e especifica as propriedades e métodos que um objeto tem ou deveria ter. • Podemos usar o readonly para definir uma propriedade como “somente leitura”, ou seja, não poderá ser modificada. • Podemos usar interfaces em Funções para definir os tipos dos argumentos e retorno de uma função.
  19. Globalcode – Open4education Classes • Podemos definir os tipos das

    variáveis que estarão no this. • Podemos tipar o retorno dos métodos. • Podemos usar interfaces • Podemos usar os modificadores readonly, protected e private.
  20. Globalcode – Open4education Generics • Com Generics podemos passar tipo

    como “parâmetros”, deixando a tipagem de variáveis e funções mais dinâmica. • Devemos usar generics para declarar que uma função retorna uma Promise.
  21. Globalcode – Open4education Generics em Classes • Podemos passar Generic

    par deixar a tipagem de classes mais dinâmica. • Podemos abreviar a declaração dos tipos das variáveis do construtor.
  22. Globalcode – Open4education “Mostre-me a linguagem de programação perfeita e

    lhe mostrarei uma linguagem sem usuários.” - Anders Hejlsberg, TSConf 2019 O TypeScript veio para aprimorar o JavaScript, adicionando tipagem e novas funcionalidade.