TypeScript: benefícios e possibilidades dessa linguagem

TypeScript: descubra seus detalhes técnicos e o real motivo dele existir!

Imagem de um homem sentado em uma mesa, trabalhando em um laptop. O homem está usando um fone de ouvido e está concentrado no seu trabalho. A imagem é sobre a linguagem de programação TypeScript e os benefícios e possibilidades que ela oferece.

O TypeScript é uma linguagem poderosa que pode elevar o nível dos seus projetos. Entenda porque ela existe e como explorá-la ao máximo em seu favor!

Tempo de Leitura: 4 minutos

Pronto para explodir a sua mente conhecendo e explorando as possibilidades do TypeScript? Essa linguagem de programação tipada, de código aberto e derivada do JavaScript é uma excelente ferramenta para ter em mãos. Mas isso só se torna verdade se você entende o real motivo do TypeScript existir.

No TecnoUpdate for DEV 2022, William Grasel, que é Senior Staff Front-End Engineer do iFood, especialista em desenvolvimento de aplicações web e integrante dos Programas Google Developers Experts e Microsoft MVP (Most Valuable Professional), bateu um papo com a gente justamente sobre este tema.

No entanto, se você não estava presente no TUP4DEV e perdeu essa fala cheia de valor e insights, você pode conferir os destaques dela neste artigo. Acompanhe até o final para ampliar seu conhecimento sobre TypeScript, suas inferências, benefícios e muito mais!

Conheça nosso manifesto

TypeScript e inferência de tipos

Um pensamento equivocado, porém, recorrente que costuma surgir entre desenvolvedores que estão iniciando no TypeScript é que, para e durante o seu uso, é necessário tipar todos os elementos e variáveis do seu código.

No entanto, um detalhe importante é que a inferência de tipos no TypeScript é muito poderosa e lembrar-se dessa informação é fundamental para utilizar o TypeScript de forma realmente vantajosa, como deve ser.

Mas o que é inferência de tipos?

Inferência é a capacidade de uma linguagem de programação de inferir, ou seja, “adivinhar”, deduzir qual é o tipo do dado de determinadas variáveis, parâmetros de entrada, saídas de funções, entre outros elementos nesse sentido.

Em outras palavras, a inferência de tipos é uma espécie de inteligência que algumas linguagens de programação possuem, que permite automatizar a tipagem de variáveis durante o desenvolvimento. Elas se demonstram como sugestões ou atalhos, que podem ser aceitos ou não pelo desenvolvedor.

Benefícios do TypeScript

O TypeScript existe para facilitar a sua vida, sua tipagem ajuda a prevenir erros e garante mais qualidade e segurança para o seu código, além de auxiliar em possíveis refatorações. Mas, ao mesmo tempo, essa organização traz previsibilidade ao código, o que permite inferências de tipos com mais eficiência e a resolução de problemas ainda na compilação.

E é exatamente pela ampla capacidade de inferência que essa linguagem apresenta e pelo valor que isso pode gerar ao desenvolvimento e ao desenvolvedor que William defende que a “inferência de tipos é o real motivo do TypeScript existir.”

Exemplos práticos de como a inferência de tipos é aplicada no TypeScript

Falando da inferência, na prática, o que ocorre é que o TypeScript consegue inferir os tipos das variáveis com base nos valores atribuídos a elas. Isso significa que você não precisa perder tempo tipando todas as suas variáveis e pode, ou melhor, deve deixar o TypeScript fazer isso por você!

Quer ver uma demonstração das inferências do TypeScript? O William trouxe alguns exemplos para gente e você pode visualizá-los no vídeo:

Viu só? A ideia é parar de tipar coisas desnecessariamente e ganhar tempo e eficiência com isso! Mas talvez você esteja se perguntando: mas como saber quando eu preciso ou vale a pena tipar uma variável?

Bom, existem algumas dicas para isso! A primeira delas é combinar o Strict Mode do TypeScript e o ESLint

O Strict Mode é o modo de configuração mais completo do compilador do TypeScript. Com ele ativo, o compilador irá exigir a tipagem de todas as variáveis que o TypeScript não for capaz de inferir (função noImplicitAny).

Já o ESLint conta com a regra “no-inferrable-types” que faz justamente o contrário: te impede de tipar variáveis que o TypeScript for capaz de inferir. Desse modo, você tem a garantia de que irá tipar o que precisa, e somente isso!

E, para além dos casos de No Implicit Any, em que o TypeScript não consegue inferir a tipagem de uma variável, vale a pena tipar, apesar da inferência realizada pelo TS, em casos de:

  • Variáveis do tipo let não inicializadas;
  • Variáveis do tipo let inicializadas, mas que poderão receber novos tipos de valores no futuro;
  • Variáveis do tipo const inicializadas como objetos cuja propriedade possa receber outros tipos de valores no futuro.

Inferências mais avançadas no TypeScript

Depois de conhecer o funcionamento básico das inferências de texto do TypeScript, que tal darmos um passo adiante? 

Existem funções no TypeScript que são interessantes de conhecer e manter na manga para gerar inferências mais avançadas durante o processo de desenvolvimento. Elas, assim como as inferências mais simples, podem te ajudar a ganhar qualidade e tempo em seus projetos, porém em um nível ainda mais específico e poderoso.

Quer conhecê-las e adicioná-las ao seu repertório? Confira a demonstração completa do William no vídeo pelo link no final do artigo.

Generics no TypeScript

Se você acompanhou os exemplos mais avançados de inferências no vídeo, viu o quanto as inferências podem ser cruzadas e usadas para criar novos tipos. 

No entanto, o TypeScript nem sempre consegue retornar as inferências mais exatas possíveis, e é aí que entra o Generics no TypeScript – por mais contraditório que isso possa parecer.

O Generics permite “criar um componente que pode funcionar em vários tipos, em vez de em um único”, segundo a documentação do TypeScript

E a partir dessa versatilidade é possível ajudar o TypeScript a fazer inferências mais assertivas. Afinal, consegue-se definir regras mais amplas/genéricas que serão aplicáveis independente do tipo dos valores inseridos. 

Quer ver na prática? De volta à demonstração do William (que você poderá visualizar no vídeo abaixo)! Nela, você visualiza não só essa lógica, mas aprende a criar tipos genéricos (básicos, especializados, dinâmicos), restringi-los, torná-los parâmetros e muito mais… tudo com várias dicas e detalhes técnicos valiosos e imperdíveis!

E depois de conhecer toda a potência do TypeScript e como começar a explorá-la, que tal se conectar com outros DEVs e Software House da nossa comunidade e continuar trocando conhecimentos sobre Desenvolvimento?

No fórum de Desenvolvimento, você vai poder aprofundar ainda mais seu repertório sobre TypeScript e outras linguagens e temas do mundo da programação. Participe!

Casa do Desenvolvedor
Casa do Desenvolvedor
Somos a Casa do Desenvolvedor, uma comunidade que tem como propósito, fortalecer o desenvolvimento de software no Brasil. Faça parte você também dessa comunidade!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Pular para o conteúdo