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.
Inscreva-se no Blog TrincaTech
Receba os posts mais recentes no seu e-mail