Fale com a gente no WhatsApp Fale com a gente no WhatsApp
Fale com a gente no WhatsApp

Javascript

Tipagem no TypeScript

Neste artigo vamos aprender a trabalhar utilizando a tipagem do TypeScript com variáveis, constantes, arrays e objetos.

há 3 anos 4 semanas

Formação Desenvolvedor JavaScript
Conheça a formação em detalhes

Um dos principais recursos que o TypeScript traz é a utilização da tipagem estática para o JavaScript, que trabalha com tipagem dinâmica. Desta forma o desenvolvedor tem a responsabilidade de declarar qual o tipo da variável que será utilizada. Entre os tipos disponíveis, nós temos:

  • number
  • string
  • boolean
  • undefined
  • null
  • symbols
  • any

Node.js - Fundamentos
Curso Node.js - Fundamentos
Conhecer o curso

Tipagem no TypeScript: Variáveis.

Primeiramente, para declarar variáveis utilizando o TypeScript, podemos utilizar a seguinte sintaxe:

let numero: number;
let texto: string;
let status: boolean;

Também podemos declarar e atribuir um valor:

let idade: number =  25;
let nome: string = 'TreinaWeb';
let statusPublicacao: boolean = true;

Neste caso a tipagem garante que as variáveis devem conter dados dos seus respectivos tipos. Utilizando o Visual Studio Code (por exemplo) podemos ver que, caso alguma variável receba algum valor diferente do seu tipo declarado anteriormente, o TypeScript apresentará um aviso:

Erro no tipo da variavel

Tipagem no TypeScript: Constantes.

Agora, seguindo a mesma maneira que declaramos as variáveis no TypeScript, precisamos apontar o tipo das constantes, com a sintaxe:

const PI: number = 3.14

Vale lembrar que, no caso das constantes, devemos inicializar a constante com o valor definido, ou seja, não é possível alterar seu valor posteriormente.

Erro ao alterar valor de constante

Tipagem no TypeScript: arrays.

Quando vamos trabalhar com arrays no TypeScript é preciso se atentar para algumas particularidades, primeiramente, podemos trabalhar com os arrays que recebem dados de apenas um tipo, da seguinte forma:

let carros: string[] = [];
carros.push('Gol');
carros.push('Fiesta');

Ou podemos inicializar o array com os valores:

let animais: string[] = ['Cachorro', 'Gato'];

Agora perceba que em ambos os casos, se tentarmos adicionar algum valor de um tipo diferente do que foi declarado anteriormente, vamos obter um aviso:

Erro ao adicionar item de tipo diferente ao array

Neste caso tentamos adicionar um valor ao nosso array “carros” utilizando o método push(), porém não podemos pois o array só aceita strings e não numbers.

Array com mais de um tipo

O TypeScript traz este recurso, onde podemos trabalhar com arrays que recebem mais de um tipo, neste caso ao declarar o array é necessário passar quais tipos de dados que esse array estará apto a receber:

let carros: (string | number)[] = ['Gol', 2014,'Fiesta', 2018];

Também é possível definir exatamente qual o conteúdo que o array estará apto a receber, além do tipo:

let cursos: ('TreinaWeb' | number)[] = ['TreinaWeb', 2018];

Neste exemplo acima, o array cursos não irá aceitar nenhuma string exceto “TreinaWeb”.

Erro ao adicionar string diferente do esperado ao array

Criando tipos personalizados

Existe a possibilidade de criarmos tipos para trabalhar com a nossa aplicação. Seguindo o exemplo dos arrays, podemos criar um array com tipo para usá-lo quantas vezes quisermos, facilitando o desenvolvimento:

type Cursos = ('TreinaWeb' | number)[];

let curso: Cursos = ['TreinaWeb', 200];
let curso2: Cursos = ['TreinaWeb', 700, 'TreinaWeb', 800];

Podemos criar tipos para trabalhar com objetos também, da seguinte forma:

type Animal = {
    nome: string;
    idade: number;
}

let cachorro: Animal = {
    nome: 'Rex',
    idade: 3
}

Neste caso criamos o tipo Animal, que possui as propriedades nome (string) e idade (number) e declaramos um objeto “cachorro” para este tipo. Caso alguma propriedade não esteja de acordo com o tipo, o TypeScript irá apresentar um aviso, como a seguir:

Erro de tipo incompátivel da propriedade idade do Tipo Animal

Foi declarado um objeto “gato” do tipo “Animal”. Porém na propriedade “idade” passamos a string “dois” no lugar de um number (2), e então, o TypeScript apresenta um aviso que a propriedade idade declarada no tipo Animal espera um number.

Desta forma é possível criar tipos conforme a necessidade da aplicação que está sendo desenvolvida, tanto para a utilização de arrays como em objetos.

Conclusão

A tipagem estática nos ajuda a desenvolver um código mais confiável e robusto, diminui possíveis erros futuros e ainda pode tornar nossa IDE mais inteligente com recursos de autocomplete apresentando assim maior eficiência.

Claro que tudo deve ser colocado no papel, afinal, para equipes acostumadas a trabalhar com JavaScript e em projetos que não são tão complexos, devemos considerar se realmente há a necessidade de alguma migração e levar em conta toda a curva de aprendizagem que a equipe terá para aplicar o TypeScript.

Mas, é inegável que o TypeScript é uma tecnologia muito importante atualmente, já que está sendo muito utilizada e requisitada no mercado de trabalho.

TypeScript - Fundamentos
Curso TypeScript - Fundamentos
Conhecer o curso

Por fim, caso queira aprender mais sobre TypeScript saiba que aqui na TreinaWeb temos o curso TypeScript - Fundamentos que possui 01h31 de vídeos e um total de 30 exercícios. Conheça também nossos outros cursos de TypeScript.

Veja quais são os tópicos abordados durante o curso de TypeScript - Fundamentos:

  • Compreender melhor as vantagens que a utilização do TypeScript pode trazer;
  • Utilizar a tipagem estática que o TypeScript traz;
  • Utilizar o conceito de type assertion;
  • Aplicar construção e desconstrução (ou decomposição) de objetos no TypeScript;
  • Aplicar conceitos típicos de orientação a objetos, como classes, métodos acessores, interfaces e herança com o TypeScript;
  • Verificar qual seria o código JavaScript que teria que ser produzido para se obter um efeito análogo à utilização do TypeScript.

Autor(a) do artigo

Wesley Gado
Wesley Gado

Formado em Análise e Desenvolvimento de Sistemas pelo Instituto Federal de São Paulo, atuou em projetos como desenvolvedor Front-End. Nas horas vagas grava Podcast e arrisca uns três acordes no violão.

Todos os artigos

Artigos relacionados Ver todos