O que é typescript? Aprenda agora sobre tipagem

O que é typescript? Aprenda agora sobre tipagem

Minha primeira linguagem de programação foi o Javascript e, por isso, eu tenho um amor muito grande por ela. Quando procurei sobre o que é Typescript, fiquei pensando por que eu iria perder tempo tipando as coisas. Javascript é mais prático e dinâmico. Mas será? Hoje vamos entender a linguagem Typescript e como ela resolve alguns problemas do Javascript.

Quando eu mudei de time na empresa em que trabalho, passei a entender o que é Typescript pode ser a resolução de muitos problemas. Trabalhar com projetos de front-end em Javascript que eu ainda não conhecia.

Você já se esqueceu quais são os parâmetros de uma função ou as propriedades de um objeto e teve que ficar indo e voltando no código? Você já precisou acessar camadas e camadas do projeto até encontrar as informações que precisava para entender o retorno de uma função?

Sem tipagem é assim mesmo, né? Para quem está acostumado com Javascript, pode não parecer nada de mais. Mas, depois que comecei a trabalhar com linguagens tipadas, quando estou usando Javascript, às vezes parece que estou codando no escuro. E é por isso que hoje irei apresentar o Typescript.

O que é Typescript?

Typescript é uma linguagem de programação criada pela Microsoft que estende o Javascript e adiciona novas funcionalidades. Ou seja, ela não é uma linguagem completamente nova e sim um superset de Javascript.

O nome Typescript vem da combinação das palavras Javascript + tipo, representando sua funcionalidade adicional principal que é a tipagem estática.

Para que serve Typescript?

O Typescript tem tudo o que o Javascript possui e ainda resolve alguns problemas, sendo os principais a tipagem estática e o suporte à programação orientada a objetos.

Com a tipagem estática é possível compreender e refatorar com muita facilidade os dados que você está trabalhando no código. A intellisense da IDE fica muito melhor. Ao posicionar o cursor em cima do dado, a IDE te informa a tipagem dele, assim como sugere as propriedades de um objeto que você estiver usando.

Para quem trabalha com programação orientada a objeto, o Typescript é muito mais apropriado, com funcionalidades e sintaxe adequadas. Ele dá suporte à: encapsulamento, herança, abstração e polimorfismo.

Como funciona o Typescript?

O Typescript é uma linguagem compilada, possibilitando a identificação de erros, sugerindo correções antes da execução do código e gerando economia de tempo.

Com Javascript, você precisa executar o código para verificar possíveis erros. Ele transpila para Javascript, ou seja, o código é convertido para Javascript no build de produção, sendo utilizado apenas em ambiente de desenvolvimento. Todo código Typescript é no fim um código Javascript. Portanto ele funciona em todo navegador e sistema operacional que o Javascript rodar.

Ele trabalha com inferência de tipo, tornando opcional a tipagem de todos os elementos do código. Só será necessária a tipagem do que o compilador não conseguir deduzir automaticamente.

Adotar TypeScript pode ser gradual, sem necessidade de converter todos os arquivos de uma vez. Ele aceita arquivos Javascript, podendo então substituir aos poucos a linguagem do projeto até que todo o código tenha sido refatorado.

Qual a diferença entre Javascript e Typescript?

Quando falamos em diferenças, é importante ressaltar que o Typescript tem tudo o que o Javascript possui, sendo então muito parecidas.

Podemos dizer que as grandes diferenças de funcionalidades entre Javascript e Typescript são a tipagem estática e o suporte a OOP (Programação Orientada a Objetos) e que o Typescript é uma linguagem compilada e que transpila para Javascript.

Outras alternativas:

JSDoc

É possível adicionar tipagem via JSDocs, através de comentários. É uma possibilidade que auxilia na adoção parcial do Typescript em projetos pré existentes.

O JSDoc é apenas uma funcionalidade que atua através de comentários, enquanto Typescript é uma linguagem com diversas funcionalidades. Pelo JSDoc atuar através de comentários, a tipagem poderá ficar desatualizada. O Javascript não irá detectar alterações na documentação e exigirá a correção da tipagem, ao contrário do Typescript.

Flow

Uma alternativa ao Typescript é o Flow. Eles possuem funcionalidades muito parecidas, mas o Typescript é muito mais maduro e com maior apoio da comunidade. Isso faz toda a diferença na escolha de uma tecnologia.

Typescript diminui a produtividade?

No início da adoção do Typescript, sim, você irá levar mais tempo devido à curva de aprendizado da linguagem. Criar a tipagem leva um tempo extra também. Mas esse tempo perdido no aprendizado e na tipagem é recuperado e até superado com o crescimento da aplicação.

A tipagem ajuda muito na produtividade, principalmente para novos devs, que não dominam o projeto. Isso porque o código fica muito mais simples de ser entendido e refatorado.

Quais as vantagens e desvantagens

Como todas as outras linguagens, Typescript também possui os seus prós e contras. Um código tipado tem suas vantagens e desvantagens, assim como um código não tipado. Confira abaixo quais são elas:

Vantagens

- Tipagem estática opcional

- Previsibilidade e legibilidade

- Rápida refatoração

- Validação do código

- Adoção parcial

- Melhora a documentação

- Melhora o IntelliSense da IDE

- Novas funcionalidades

- Melhor suporte a OOP

Desvantagens

- Curva de aprendizado da linguagem

- Tempo gasto para tipar

- Configuração do projeto

- Tempo pra compilar / transpilar

- Possível necessidade de refatoração

E sorvete, você gosta?

Eu poderia falar mais sobre Typescript, mas como a gente explica pra alguém que nunca experimentou sorvete que ele pode ser muito bom, apesar de ser extremamente gelado e até congelar seu cérebro se você for com muita sede ao pote?

"Você escreve código para outras pessoas poderem entender."

Se eu puder resumir esse artigo, a lição que quero passar é que nós não escrevemos código para nós mesmos. Nós escrevemos código para que nossos colegas de trabalho, atuais e futuros, possam compreendê-lo e refatorá-lo sempre que necessário da forma mais fácil possível.

Devemos sempre pensar em como diminuir a barreira para novos desenvolvedores e desenvolvedoras, ressaltando que eles terão diferentes senioridades e pessoas júnior já tem muitas barreiras a serem vencidas.

Confira meus projetos comparando Javascript e Typescript

Para essa prova de conceito, eu fiz 2 projetos com a mesma proposta, um em Javascript e outro em Typescript, para estudar e apresentar as diferenças entre eles. É um projeto simples, que consome a api do Pokémon. Confira ele aqui.

Vocês podem conferir o repositório nesse link.

Entenda o que é Typescript na prática

Agora que você entendeu o que é Typescript deve estar cheio de vontade de aplicar esses conhecimentos na prática. Na Digital House, você aprende desenvolvimento web através de aulas remotas, 100% ao vivo, com interação entre professores e colegas de sala. Aprenda programação mão na massa e ainda saia com um Projeto Integrador que servirá de portfólio para você embarcar para o mercado de trabalho.

Leia mais no blog DH:

+ Aprenda como criar um aplicativo para celular em 6 etapas

+ Área da tecnologia: É preciso uma faculdade para ser programador?

+Curso Node.js: o que se aprende e quais são as vantagens

E aí, já segue a gente no Twitter? Vem pra rede, vamos conversar sobre habilidades digitais! ;)