TypeScript é um superconjunto de JavaScript desenvolvido pela Microsoft para escalabilidade. Uma escolha popular para empresas de TI e grandes projetos em todo o mundo, pode ajudá-lo a crescer se souber quando usá-lo.
Douglas Crockford colocou em seu livro “JavaScript tem algumas ideias boas e algumas muito ruins”.
Sem ser muito técnico, digamos apenas que o JavaScript está sujeito a comportamentos inesperados. Por exemplo, uma instrução que compara se 2 números são iguais pode potencialmente falhar se os números forem altos o suficiente (999999999999999 é o mesmo que 10000000000000000 em JavaScript).
Outro ponto de desprezo é um dos maiores pontos fortes do JavaScript: sua flexibilidade. JavaScript é permissivo, o que significa que mesmo que o código não seja perfeito, o mecanismo tenta executá-lo adivinhando o que o desenvolvedor pretendia. Quando funciona, é magnífico, mas quando não funciona, pode produzir resultados estranhos.
Caso em questão, o ponto-e-vírgula (;) em JavaScript tem uma função muito específica: eles atuam como um significante de fim de instrução, informando ao mecanismo quando um bloco de código termina. Mas em JavaScript, eles são principalmente opcionais. Você poderia escrever um programa inteiro sem ponto e vírgula e ele funcionaria perfeitamente. Mais uma vez, o JavaScript está fazendo suposições fundamentadas sobre onde cada instrução termina. Exceto que nem sempre é o caso.
Bibliotecas de terceiros ou mecanismos específicos podem ter uma opinião diferente sobre onde termina uma declaração, o que se traduz em comportamento irregular. Um código pode ser executado em um ambiente e gerar um erro em outro.
Alguns dos piores infratores foram eliminados em versões mais recentes de JavaScript. Outras peculiaridades foram adotadas pela comunidade como atalhos e recursos. Finalmente, algumas bibliotecas e frameworks populares fizeram a sua parte na correção dos piores aspectos da linguagem.
JavaScript e dimensionamento
Peculiaridades à parte, o JavaScript veio para ficar. Não existem outras linguagens de script de navegador competitivas no mercado e, apesar de todos os seus problemas, é uma ótima linguagem para iniciantes e profissionais.
JavaScript é perfeito para projetos ou equipes pequenas. Quando você tem um ou dois desenvolvedores trabalhando com mil linhas de código, é muito fácil detectar comportamentos irregulares e eliminá-los.
Infelizmente, as peculiaridades do JavaScript aumentam à medida que os produtos aumentam. O que originalmente era um comportamento estranho pode rapidamente se tornar um incômodo, extremamente difícil de depurar. Quanto maior a equipe e maior o produto, mais você precisa confiar em uma tecnologia estável e previsível.
Lembra das suposições fundamentadas que mencionei antes? Imagine que um desenvolvedor de uma equipe comete um erro que passa despercebido porque o código funciona conforme o esperado. Então, quando o código é integrado ao projeto, o erro ainda passa despercebido.
Com o passar do tempo, o projeto é dimensionado, mas desta vez, o novo código falha porque depende do código com bugs anterior. Deve ser uma solução fácil, certo? Talvez, a menos que outro aspecto do projeto dependa do resultado desse comportamento estranho; nesse caso, alterá-lo quebraria outra coisa.
E assim, um erro pequeno e inócuo transforma-se numa bola de neve que se transforma numa crise total. Estaríamos contando uma história muito diferente se a linguagem não permitisse comportamentos estranhos em primeiro lugar.
Digite TypeScript
A comunidade JavaScript é enorme e existem centenas de ferramentas projetadas para evitar esse tipo de situação. Ainda assim, alguns desenvolvedores prefiro cortar o problema pela raiz, e é aí que entra o TypeScript.
TypeScript é um superconjunto de JavaScript desenvolvido pela Microsoft e lançado em 2012. Possui uma abordagem sintática estrita que adiciona digitação estática opcional ao JavaScript. Para evitar detalhes técnicos, digamos apenas que o TypeScript impõe algumas regras que tornam o código mais previsível e confiável.
Texto datilografado foi projetado desde o início para ser semelhante ao JavaScript, mas escalável. É por isso que, assim como seu antecessor, é uma linguagem multifuncional que pode ser usada para escrever aplicativos do lado do cliente ou do lado do servidor.
TypeScript não é uma linguagem de programação diferente. Qualquer pessoa que conheça JavaScript pode se adaptar ao TypeScript com muito pouco esforço. É como se um falante de inglês aprendesse a escrever com um estilo diferente, em vez de aprender um idioma totalmente diferente.
O código TypeScript é transcompilado para JavaScript, para que possa ser executado sem esforço em qualquer ambiente que execute JavaScript. Do ponto de vista do investimento, é um investimento inicial de baixo custo, tanto de tempo quanto de recursos.
Lembra daquela pesquisa StackOverflow que mencionei antes? TypeScript é classificado como a terceira linguagem de programação mais amada, logo atrás de Rust e Clojure. É a segunda linguagem de programação mais mencionada quando questionados sobre o que os desenvolvedores de tecnologia gostariam de incorporar em seus projetos.
A razão para isso é simples: o TypeScript tomou mais de uma década de JavaScript e incorporou correções que os desenvolvedores estavam implorando. Para ser justo, os gurus do JavaScript terão poucos motivos para migrar para o TypeScript. Mas pode economizar centenas de horas de depuração e enxaquecas para desenvolvedores juniores e grandes equipes.
Pense no TypeScript como uma ferramenta de comunicação implícita. Quando um desenvolvedor escreve código na linguagem, outros membros da equipe podem ter certeza de que nada de estranho está acontecendo nos bastidores. Você pode pegar e usar o código sem precisar primeiro verificar comportamentos anormais.
E é por isso que o TypeScript é uma ferramenta tão excelente para projetos escaláveis: seus resultados são mais confiáveis e o código é mais fácil de entender. Se um desenvolvedor declarar que uma variável é um número, ela não se transformará magicamente em uma string.
Algumas palavras de advertência…
TypeScript é ótimo, mas tem seu próprio conjunto de problemas. Por um lado, é mais difícil de ler porque há muito mais a declarar em comparação com JavaScript. Ao trabalhar com código desconhecido, a falta de legibilidade pode retardar o tempo de produção.
Em segundo lugar, o TypeScript funciona melhor quando todas as suas dependências são digitadas. Infelizmente, isso não é verdade para a maioria das bibliotecas JavaScript de terceiros; portanto, ao usar outra dependência, você está abrindo a porta para que comportamentos estranhos voltem.
Dito isto, a maioria dos desenvolvedores adapta lenta mas seguramente suas bibliotecas a um estilo digitado. Como um exemplo rápido, Angular e Vue 3, dois dos frameworks front-end mais populares do mercado, migraram para TypeScript.
Mesmo com suas limitações, se você estiver trabalhando com um projeto grande ou que esteja em escala, espero ter defendido o TypeScript. Este superconjunto, por mais jovem que seja, está ganhando impulso a cada ano que passa e se tornou um padrão para empresas de TI em todo o mundo.
Fonte: BairesDev