Conheça o TypeScript

Você já ouviu falar de TypeScript? Vamos conversar um pouco sobre ele.

Typescript é um superset do JavaScript, isso significa que ele contêm novas funcionalidades além das do JavaScript. Então, qualquer programa escrito em Javascript também rodará, como o esperado, em TypeScript (apesar do contrário não ser verdade). O TypeScript é compilado para Javascript puro! Talvez você esteja se perguntando: Então porque eu trocaria meu bom e velho companheiro JavaScript (e a grande gama de frameworks baseados nele) para usar o TypeScript? De antemão posso dizer que o TypeScript nos permite ter muito mais poder sobre nosso código, utilizando uma forte tipagem, interfaces e classes!

Como o TypeScript surgiu e o que ele nos oferece?

O TypeScript foi lançado pela Microsoft em 2010 e hoje conta com colaboradores de todos os lugares do mundo. Ele foi criado com o intuito de permitir a checagem estática de tipo, que é uma característica muito importante para aplicações em grande escala. Mas o que é essa tal de checagem estática de tipo? O nosso velho conhecido JavaScript é tipado dinamicamente, isso quer dizer que programas escritos nessa linguagem não sabem o tipo de uma variável até que algum valor seja atribuido a ela, em tempo de execução, a variável pode muito bem ser reatribuida com um valor de um tipo totalmente diferente sem nenhum problema aparente e nenhum aviso que você está prestes a ter uma dor de cabeça proporcional ao tamanho da sua aplicação.

O TypeScript, por outro lado, usa a tipagem estática. O tipo da variável pode ser atribuído quando ela é declarada (já consegue sentir a dor de cabeça melhorando?). Os tipos das variáveis serão checados em tempo de compilação e erros, muito bem vindos, serão disparados se algum valor de um tipo diferente for atribuído a ela. Essa tipificação é opcional, o tipo any pode ser atribuído a variáveis permitindo que elas sejam de qualquer tipo. Se nenhum tipo for especificado, o tipo any é atribuido por padrão, mas porque você faria isso, né? Mas os benefícios do TypeScript não se resumem a esses, podemos citar também:

  • Inferência de tipo
  • Interfaces
  • Tipos enumeráveis
  • Generics
  • Namespaces
  • Tuplas
  • API para manipulação do DOM
  • Async/await
  • Classes
  • Módulos
  • Suporte a arrow functions
  • Parâmetros opcionais e padrões

Como o TypeScript é um superset do JavaScript algumas das características citadas acima são herdadas do ECMAScript 2015 (ES6). Mas é interessante saber que quando o JavaScript começou a dar suporte a definição de classes, o TypeScript já permitia esse uso.

Benefícios importantes

Como já foi dito, o TypeScript nos fornece um conjunto interessante de vantagens que não estão implementadas no JavaScript (ECMAScript). Vamos detalhar um pouco mais algumas delas.

Tipos

O TypeScript é uma linguagem fortemente tipada, os tipos bem definidos fazem com que seu código fique mais preciso e com uma leitura mais fácil, para outros desenvolvedores. A tipagem torna mais fácil a visualização do tipo de retorno de uma função e também previne um retorno equivocado.

Classes e Interfaces

Como já foi mencionado, o ES6 adicionou o uso de classes ao JavaScript, porém o TypeScript também nos permite declarar membros de classes com os modificadores public, private, static e readonly além da possibilidade do uso de classes abstratas e interfaces, que não estão presentes no JavaScript.

Em TypeScript, as interfaces geralmente ocupam o papel de nomear seus próprios tipos de dados, e são consideradas um maneira poderosa de definir contratos entre o seu código, assim como contratos com códigos fora do seu projeto. Ou seja, elas te ajudam a definir o esqueleto de classes ou tipos de dados, enquanto suas implementações podem divergir.

Namespaces e Módulos

Comparando com o ES6, que possui módulos para ajudar os desenvolvedores a organizar seus códigos, o TypeScript nos fornece os namespaces que são muito utilizados em linguagens orientadas a objeto, como o C#.

Namespaces é um modo de organizar seu código, dividindo-o em diferentes partes, que nos dá acesso a códigos de outra parte da aplicação. O uso de namespaces é particularmente útil quando você não deseja encher seu escopo global com uma grande quantidade de variáveis.

Considerações finais

Vale mencionar que TypeScript ainda é JavaScript. O TypeScript é baseado nas características do ES6 e não provê novos métodos nem modifica os existentes. Se você compilar o seu código em TypeScript em JavaScript você nunca verá uma interface, um tipo ou um modificador, eles simplesmente não existem. O TypeScript pode ser visto como uma camada sobre o JavaScript que melhora a experiência dos desenvolvedores e previne um conjuto de bugs desnecessários.


O que você achou do TypeScript? Deixe sua opinião nos comentários.

Fonte 1

Fonte 2

Fonte 3

Fonte 4

rafael

Rafael Mota

Co-fundador da trincatech desenvolvimento, formado em Engenharia de Teleinformática pela Universidade Federal do Ceará (UFC) e com um grande carinho por programação Web.

Leia mais