O que é TypeScript e por que utilizá-lo?
Typescript é um superconjunto de JavaScript que foi desenvolvido pela Microsoft, mais precisamente por Anders Hejlsberg, arquiteto de software que também se envolveu no desenvolvimento de aplicações importantes como C#, Delphi e Turbo Pascal.
Typescript é um superconjunto de JavaScript que foi desenvolvido pela Microsoft, mais precisamente por Anders Hejlsberg, arquiteto de software que também se envolveu no desenvolvimento de aplicações importantes como C#, Delphi e Turbo Pascal.
Veremos neste conteúdo o que significa o termo superconjunto – ou superset, em inglês – e como o Typescript, que tem o código aberto e está disponível no GitHub, pode ajudar a criar códigos mais complexos e mais assertivos.
Ao final você vai entender que o Typescript foi criado, basicamente, para elevar a qualidade da linguagem JavaScript.
Glossário
O que é TypeScript?
Antes de definir o que é TypeScript, é importante entendermos o que é o JavaScript.
JavaScript é uma linguagem de programação amplamente utilizada para desenvolvimento web. Seu uso mais comum é para complementar aplicações em HTML e CSS com elementos gráficos animados em 2D ou 3D.
Além disso, o JavaScript tem a capacidade de armazenar conteúdo útil dentro das variáveis, realizar operações com strings (trechos de linhas de códigos) e responder a determinados eventos que acontecem numa página web.
Em 2012, os engenheiros da Microsoft sentiram a necessidade de adicionar recursos e ferramentas que não existiam na base do JavaScript, então criaram o TypeScript.
O TypeScript segue a base do JavaScript, mas não configura uma nova linguagem de programação: ele é um superconjunto de JavaScript.
Um superconjunto representa um punhado de ferramentas e métodos que, nesse caso em específico, adicionam recursos de tipagem estáticas e orientação a objetos ao JavaScript.
Depois de declarado, o código do TypeScript é transcompilado ou, para usar um termo mais simples, transformado em JavaScript antes de ser executado.
A extensão de um arquivo TypeScript é .ts, mas como trata-se de um superconjunto de JavaScript, é possível adicionar códigos nativos da linguagem mãe. O contrário também é válido: arquivos de extensão .js também podem conter elementos do superconjunto.



Ao mesmo tempo, os programadores contam com o suporte a diversas bibliotecas JavaScript, como Angular, Vue.js, D3.js etc.
Para que serve o TypeScript?
O principal uso do TypeScript está no desenvolvimento de sites e aplicações web que podem ser executados tanto do lado do usuário como do lado do servidor.
Em outras palavras, pode ser usado tanto em programação front-end quanto back-end.
O TypeScript também tem a capacidade de checar erros durante a digitação do código com o recurso Intellisense, mesma ferramenta presente em algumas IDEs.
As funções principais do superconjunto são: aumentar os índices de produtividade do programador e potencializar as entregas do JavaScript, bem como criar aplicações mais seguras, escaláveis e complexas.
Qual a diferença entre JavaScript e TypeScript?
Antes do desenvolvimento do TypeScript em 2012, a linguagem JavaScript era usada apenas em algumas aplicações front-end com códigos simples e trechos relativamente curtos.
Mas depois que a Microsoft publicou esse projeto open source, ela abriu também a possibilidade dos desenvolvedores usarem a linguagem para trabalhar no back-end, já que o superconjunto é capaz de atribuir ao JavaScript o paradigma de programação orientada a objetos (POO).
Com o TypeScript é possível usar variáveis com tipos definidos, criar classes e usar princípios de POO, como encapsulamento, herança, abstração e polimorfismo, cujos detalhes veremos a seguir.
Encapsulamento
Através de setter e getters, o recurso de encapsulamento permite que o código acesse atributos protegidos dentro de alguma classe.
Isso significa que os blocos podem alcançar pontos específicos do ambiente externo, o que permite a visibilização dessas características pelos usuários.
Herança
A herança remete ao uso de classes mães e filhas, nas quais as filhas podem herdar – e daí o nome – determinados atributos das mães, ou ter a mesma estrutura com atributos diferentes.
Normalmente utiliza-se o comando chamado “extends” e “super” quando o método de classe é o subscrito.
Nesse aspecto, a herança de características e comportamentos da classe mãe não pede a redefinição das funções.
Abstração
A abstração é um conceito que existe para destacar características de determinados elementos. A partir dela é possível agrupar esses atributos do mundo real em classes ou então usar funções de sistema.
Existem também as classes abstratas, que não têm uma representação no mundo real, mas ainda assim são importantes e têm funções fundamentais no sistema.
Polimorfismo
O polimorfismo é um recurso que permite ao programador usar os atributos de uma classe em outra, de acordo com o que a situação pedir.
É como se o desenvolvedor usasse o mesmo objeto mas de maneiras diferentes, como um martelo, que tanto pode fixar um prego quanto provocar extrema dor se acertar seu dedo.
Principais vantagens em utilizar o TypeScript
Uma das vantagens de usar o TypeScript é a variedade de suporte a bibliotecas em JS, bem como documentação de API. Quem é programador sabe que as bibliotecas são uma excelente fonte de produtividade, já que fornecem uma série de recursos prontos, facilitando o desenvolvimento do código.



Outra vantagem do TypeScript é a facilidade e a clareza do código, características importantes que a tipagem estática proporciona para exibir os tipos das variáveis usadas no código.
Sistemas mais complexos também podem ser construídos a partir do TypeScript, sem deixar a desejar na qualidade e no acabamento do código.
Há quem diga que o TypeScript não fica para trás de outras linguagens mais tradicionais, como é o caso do PHP por exemplo.
Outras vantagens importantes de usar o superconjunto são:
- Checagem de erros em tempo real, o que permite uma correção mais rápida;
- Recurso de preenchimento automático, o que agiliza bastante o processo de declaração de código;
- Sua característica open source permite que a comunidade esteja sempre trabalhando e contribuindo para a melhoria da linguagem;
- As atualizações são constantes e não demoram a sair, já que foi desenvolvido pela Microsoft;
- Existe a possibilidade de migrar gradualmente de linguagem, o que é bem mais confortável para o dia a dia das equipes.
Principais usos do TypeScript
A linguagem pode ser usada tanto em sistemas simples quanto em aplicações grandes e complexas, como sistemas bancários, de saúde, entre outros.
Um dos usos importantes do superconjunto de JavaScript é na hora de testar e comparar aplicações em diversos navegadores diferentes.
Testes como esse levam o nome de cross-browser e o programador pode ter dificuldade em rodá-lo quando a aplicação é feita em JS, já que cada navegador tem suas próprias particularidades.
O TypeScript facilita esse processo, já que garante a compatibilidade do JavaScript com todos os browsers que fazem uso dos padrões ECMAScript 3 ou 5 ou para o commonjs. Dessa maneira é desnecessário refazer o código para cada tipo de navegador.
Outro uso recorrente do TypeScript é nos IDEs ou Ambientes de Desenvolvimento Integrado, cuja definição você pode ver clicando aqui.
Como vimos anteriormente, o superconjunto é capaz de revelar os erros durante a digitação do código e também de autopreenchimento, duas ferramentas importantes para o programador no dia a dia.
Por esse motivo, alguns editores de código-fonte têm em sua base o TypeScript, como Visual Studio Code, WebStorm e Sublime Text, por exemplo.
Outro uso importante da linguagem é nos frameworks, principalmente o Angular e o Vue.js, cujas bases de código têm grande parte ou são 100% feitas em TypeScript.
? Como aprender TypeScript?
A Awari é uma plataforma completa com mentorias individuais, cursos com aulas ao vivo e suporte de carreira na área de Tecnologia.
Dentro da trilha de Programação temos cursos específicos para você que pretende dar o pontapé inicial na sua formação como desenvolvedor de software.
Conheça também os intensivos de Front-End com React, Back-End com Javascript, DevOps, Desenvolvimento Web e React Native. Saiba mais sobre a nossa jornada personalizada e materiais complementares feitos por especialistas no mercado.


