Por que você deveria utilizar Typescript

  • programming
  • typescript
  • webdev

Introdução

Sem dúvida algo que manteve o Javascript como uma linguagem de programação largamente utilizada foi o Typescript: o Javascript com tipagens implementadas.

Eu levei um certo tempo até entender a vantagem de tal recurso, tendo em vista que de modo geral linguagens não tipadas(como o Python) são mais fáceis.

Neste post venho explicar as vantagens da tipagem, e por que sempre utilizo Typescript ao invés de Javascript(não apenas eu!).

Praticidade

Pode parecer estranho passar um tempo lidando com tipos no projeto ao invés de desenvolver as implementações em si, mas existem ganhos rápidos ao se fazer isso.

Veja como exemplo um objeto que associa nomes de frutas à descrições

const fruits = {
  banana: "Uma fruta amarela e fácil de descascar",
  uva: "Uma pequena fruta que pode ser roxa ou verde",
  laranja: "Uma fruta redonda e com sabor cítrico",
};

Em seguida duas funções que receberão um nome de fruta e exibirão sua descrição no console, uma com definição de tipos e uma sem

function fruitInfo(fruit: any) {
  console.log(fruits[fruit]);
}
function tfruitInfo(fruit: keyof typeof fruits) {
  console.log(fruits[fruit]);
}

Ao definir o tipo do parâmetro da função, já nos é exibido as opções de parâmetro aceitas, muito conveniente, não? E ao tentar inserir um parâmetro inválido, o próprio editor de código já nos informa do erro e nos impede de utilizar o parâmetro errado, muito conveniente para evitar erros como escrita errada de palavras

fruitInfo("Banana"); // 👎
tfruitInfo("banana"); // 👍

E note que o código necessário para alcançar esse resultado foi incrivelmente pequeno, não requerindo sequer uma linha adicional de código, o que nos leva ao próximo tópico

Facilidade

Typescript é extremamente fácil e intuitivo, qualquer programador Javascript deveria ter muita familiaridade com a linguagem, veja como é simples declarar uma variável do tipo string:

const a: string = "a";

E veja como é simples declarar um array de strings:

const words: string[] = [];

Esse padrão serve para a maioria das coisas, e boa parte da experiência de utilizar o Typescript se resume a isso

Uma pequena introdução para te convencer de vez

Não convencido? A seguir mostrarei exemplos que provam o quão útil essa tecnologia é

Caso você queira declarar um tipo de string que só pode ter um certo valor dentro de um conjunto, é simples:

type fruits = "orange" | "grape" | "banana";

Assim, se esse tipo for atribuido a uma variável, ela só pode ter um dos três valores especificados: orange, grape ou banana. Essa funcionalidade é muito conveniente para funções que recebam parâmetros de texto que precisam ser algum valor de texto específico, como por exemplo a função fruitInfo mostrada no início do artigo. Naturalmente, é possível declarar um array de fruits(fruits[])

Outra utilidade é declarar tipos para objetos, definindo quais propriedade ele possui e o tipo da propriedade:

type Person = {
  name: string;
  age: number;
};

Note o quão semelhante isto é a declarar objetos, e caso queira um array de pessoas, basta utilizar:

const people: Person[] = [];

O padrão utilizado para declarar arrays é muito intuitivo e acredito que nesse ponto já tenha sido possível ter uma boa compreensão dessa funcionalidade.

Outro recurso muito conveniente é obter o tipo de algum valor já existente, então vamos supor que eu tenha o objeto pessoa1 e eu queira seu tipo, para isso é utilizado o typeof

const p1 = {
  age: 18,
  name: "Gabriel",
};
type Person = typeof p1;

E de forma mais específica para objetos, é possível obter as keys do objeto através da funcionalidade keyof

const p1 = {
  age: 18,
  name: "Gabriel",
};

type Person = typeof p1;
type PersonKeys = keyof Person;

Note que o keyof deve ser utilzado em um tipo, diferente do typeof, que deve ser utilizado em um valor

Considerações finais

Para desenvolvedores Javascript, o Typescript já não é uma opção, ao utiliza-lo há muitos ganhos no projeto independente de seu tamanho. Muitas tecnologias atuais possuem implementação com Typescript e pode ser que haja dúvidas para utilizar, porém basta consultar a documentação, e na maior parte das vezes, a implementação é simples e traz muitos ganhos. Espero que com esse post você perceba o quão útil e conveniente é essa tecnologia.

Leia também