Introdução ao TypeScript - O que é, suas vantagens, e conceitos fundamentais

27 de julho de 2022
Ronaldo B.

O JavaScript tem ganhado cada vez mais espaço no desenvolvimento de sites e sistemas nos últimos anos. Hoje em dia é muito comum ver projetos que utilizam JavaScript em sua inteira estrutura.

E há uma ferramenta que pode ajudar o nosso código a se tornar ainda mais maduro e robusto, o TypeScript. Mas, o que é o TypeScript, e quais são as vantagens que ele nos traz?

O que é o TypeScript

O TypeScript é um superset, ou superconjunto, da linguagem JavaScript. Foi criado em 2012, por Anders Hejlsberg (o mesmo criador do compilador Turbo Pascal e das linguagens Delphi e C# ?). O TypeScript é mantido pela Microsoft e possui o próprio Anders como o líder do projeto.

O TypeScript é uma linguagem criada em cima do JS e permite que adicionemos tipagem de dados em nossas variáveis, além de nos oferecer recursos avançados, como a Orientação a Objetos e padrões de projeto.

Mas algo importante que precisamos saber é que o TypeScript não veio substituir o JavaScript. Na realidade, eles trabalham em conjunto. Além disso, os navegadores não conseguem ler arquivos .ts. Por isso, o TypeScript é usado apenas no momento do desenvolvimento. No final usamos o seu compilador para transformar nosso código TypeScript em JavaScript.

Vantagens em usar TypeScript

Tipagem de dados

O JavaScript é uma linguagem fracamente tipada. Isso não é ruim, apenas significa que não precisamos informar o tipo das variáveis no momento em que as criamos, e nos permite mudar o tipo delas se desejarmos.

Isso nos dá muita liberdade ao utilizar a linguagem JavaScript, além de facilitar seu aprendizado e que comecemos um novo projeto com ela.

Entretanto, quando utilizamos uma linguagem que não é fortemente tipada, pode ser que cometamos erros ao longo do desenvolvimento relacionados com os tipos das variáveis, e que não iremos notar, o que resultará em muita dor de cabeça até encontrar os bugs.

Com o TypeScript, podemos definir os tipos para nossas variáveis. E caso cometamos algum erro, o próprio TypeScript irá nos alertar sobre isso. Assim, poderemos consertá-lo no desenvolvimento, garantindo que o nosso código chegará na produção realmente funcionando.

Vamos ver um exemplo: imagine que criemos uma variável com TypeScript que possui uma string. Para definir seu tipo como string, basta informar o sinal de : (dois-pontos) e a palavra string. Daí, imagine que tentamos acessar o método toLocaleDateString() a partir dela. Esse é um método voltado para datas:

let minhaVariavel: string;

minhaVariavel = "Eu não sou uma Data";

console.log(minhaVariavel.toLocaleDateString());

Como nosso código é TypeScript, o resultado será o seguinte:

Erro retornado com o método toLocaleDateString()

Note que o método ficou com um tracejado vermelho e com uma mensagem de erro, que informa que a propriedade toLocaleDateString não existe em variáveis do tipo string. Assim, podemos identificar o erro e consertá-lo. Bem útil, não é mesmo?

Acesso a recursos avançados

A partir de 2015, o JavaScript tem recebido a adição de recursos incríveis, como alguns conceitos da Orientação a Objetos. Entretanto, pode ser que ainda sintamos a falta de alguns recursos muito úteis, como interfaces, ou uma maior quantidade de modificadores de acesso em propriedades e métodos, o que nos permitiria aplicar por completo o conceito de encapsulamento.

O TypeScript nos permite adicionar esses conceitos. Veja por exemplo o código abaixo:

interface Funcionario {
	nome: string;
	salario: number;
}

class Financeiro implements Funcionario {

	nome: string;
	salario: number;

	constructor(funcionarioNome: string, funcionarioSalario: number) {

		this.nome = funcionarioNome;
		this.salario = funcionarioSalario;

	}

}

Esse código não funcionaria com JavaScript, mas usando o TypeScript nós podemos utilizá-lo. Isso nos abre portas para o uso de paradigmas de programação muito comuns em grandes projetos, como a própria Orientação a Objetos, como também a implementação de padrões de projeto no TypeScript. Isso é muito promissor, não é mesmo?

Mas talvez nos perguntemos: “Como o TypeScript consegue fazer com que esses recursos funcionem no JavaScript, visto que eles ainda não existem na linguagem?” Isso nos leva para nosso terceiro ponto

Compilador TypeScript e retrocompatibilidade

O Compilador TypeScript ou TypeScript Compiler, também conhecido como TSC, é responsável por transformar nosso código TypeScript avançado em uma sintaxe JavaScript que pode ser entendida até mesmo pelos navegadores mais antigos. Na realidade, por padrão, o TypeScript transforma nosso código em ECMAScript 3, que foi lançado em 1999 ?.

Claro que é possível mudar essa configuração. De qualquer forma, se você precisa criar sistemas que precisam funcionar em browsers mais antigos, o TypeScript é a solução.

Vamos ver um exemplo disso: o recurso de funções assíncronas foi adicionado ao JavaScript no ano de 2017. Vamos criar um código em TypeScript que irá utilizá-lo (à esquerda) e então ver o código JavaScript que ele irá resultar (à direita):

Código TypeScript sendo convertido para JavaScript

Impressionante o código JS final, não é mesmo? Mas ele irá funcionar utilizando os tipos e recursos do TypeScript.

Excelente integração com o Visual Studio Code

O Visual Studio Code é atualmente um dos editores de texto mais usados no mundo do desenvolvimento. Ele também é da Microsoft e usa o TypeScript em sua estrutura. Isso significa que nós já sentimos os efeitos do TypeScript em nosso trabalho, mesmo que ainda não o utilizemos em nosso código.

Um dos recursos mais interessantes desse editor de texto é o IntelliSense, que nos faz sugestões de comandos que podemos usar em nosso código, além de realizar o autocompletar. Como essa tecnologia usa TypeScript e como o TypeScript nos obriga a definir os tipos em nossas variáveis, o IntelliSense irá funcionar ainda melhor conosco. Vamos ver um exemplo.

Lembra do código que fizemos antes, chamando um método de datas em uma string? Imagine que queremos consertá-lo. Ao digitar apenas duas letras, já veremos os métodos de string que podemos utilizar:

IntelliSense sendo usado pelo TypeScript

Esse recurso é bem prático e nos ajuda a criar códigos mais rapidamente ?.

Por onde começar?

O JavaScript já é uma linguagem incrível. Mas com o uso do TypeScript ela pode se tornar ainda mais fenomenal. Podemos dizer que o TypeScript como que dá “superpoderes” para o JavaScript, e aumenta o horizonte de possibilidades do uso desta linguagem.

E o melhor, como o TypeScript é basicamente JavaScript com a anotação de tipos, se tivermos uma boa base da linguagem JavaScript, estaremos prontos para iniciar o estudo do TypeScript. Para isso possuímos nosso curso Dominando TypeScript, onde abordamos todos os conceitos do TypeScript: Tipagem dos dados, Interfaces, Orientação a Objetos, Generics, Decorators, e mais ?.

Até o próximo artigo :)

Hcode: Utilizamos cookies para a personalização de anúncios e experiências de navegação dentro de nosso site. Ao continuar navegando, você concorda com as nossas Política de Privacidade.