# Desmistificando o TypeScript 🧐

O **TypeScript** foi inicialmente criado para uso interno da **Microsoft** por **Anders Hejlsberg**, arquiteto do **C#** e criador de linguagens como **Turbo Pascal** e **Delphi**, com o intuito de elevar o nível do código JavaScript, que era usado apenas do lado cliente em trechos menores e em outubro de 2012 foi quando o TypeScript estava sendo publicado oficialmente para a comunidade. Devido ao TypeScript foi possível expandir o **poder da linguagem** possibilitando aplicar uma **arquitetura mais sólida** e com **melhores práticas**.

Neste artigo irei **desmistificar** o TypeScript e citar algumas **funcionalidades importantes** que ele trouxe para o **JavaScript**, de forma que possa esclarecer e motivá-los a usar essa ferramenta incrível.

## Desmistificando o TypeScript

![desmistificando-a-filosofia.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1657041159939/fY0DHc1QU.jpg align="left")

### O que é?

Afinal o que é o **TypeScript**? Essa é uma das dúvida que percorre quase todos os desenvolvedores iniciantes, já que há uma divisão da comunidade entre “linguagem” e “superset”, fico com a segunda, onda há mais embasamento.

De acordo com o site oficial do TypeScript ele **não é uma linguagem de programação**, não por enquanto, mas isso é um assunto para outro momento, ele é categorizado como **superset** ou **superconjunto** devido a ele se acoplar diretamente a linguagem **JavaScript**, e trazer a ela novas funcionalidades ou aprimoramento de outras que amparam no desenvolvimento de determinada aplicação.

### Onde posso utilizar o TypeScript?

Devido a busca em aprimorar ferramentas para trabalhar de forma mais produtiva hoje em dia podemos citar o **JavaScript** como um grande emergente nos dias de hoje, anteriormente essa linguagem só era possível ser utilizada no **lado do cliente**, com pequenos trechos de código que lidavam diratemante com interações **web x usuário**. Hoje em dia a história é outra, é possível usar dessa tecnologia também no **lado servidor**, graças ao **Node.js**.

Dito isso, é indiscutível como o **TypeScript** cabe como uma luva em aplicações que utilizam do JavaScript auxiliando **ambos os lados da aplicação**, adicionando diversas funcionalidades a linguagem como, melhor **suporte a programação orientada a objetos**, **tipagem estática** opcional a linguagem, **validação** em tempo de compilação, além de trazer consigo uma melhor **documentação do código** escrito.

### E qual a real vantagem de utilizar-se dessa tecnologia?

O **TypeScript** traz consigo uma gama de ferramentas que auxiliam na construção de uma aplicação como citado anteriormente, dito isso, vamos **destrinchar** algumas delas para elucidar um pouco as **vantagens de ter uma aplicação bem arquitetada** e composta por ele.

Umas das vantagens é a **possibilidade de explicitar o tipo de determinada variável**, amarrando mais o código de forma que há uma **melhor leitura de determinado escopo**, assim, será possível identificar o retorno esperado, e com o **intellisense** em conjunto com a **IDE** de sua preferência, essa tipagem possibilita um **feedback** (type checking) mais assertivo caso haja alguma incongruência no código.

Outra vantagem que clareia muito com o uso do TypeScript é o suporte a **Programação Orientada a Objetos**, melhorando a aplicabilidade de conceitos como: de **Herança** que permite com que classes filhas herdam propriedades de seus pais, de forma mais intuitiva; **Encapsulamento** que por sua vez nos permite trabalhar com **getters** e **setters** dando possibilidade de acessar propriedades privadas de uma entidade, entre outros.

Podemos citar também o uso de **Interfaces** que age como um **contrato** a ser respeitado por determinada variável que resolva empregar esse contrato.

É claro que existem outras vantagens de ter uma ferramenta tão completa como essa em sua stack, mas com isso é possível ter uma prévia conclusão que o TypeScript trás consigo uma gama de ferramentas que possibilitam a facilidade de escalonamento de uma determinada aplicação, é claro que, não há bala de prata, porém, não há dúvidas de que o TypeScript veio para somar e muito com a comunidade.

Fácil entendimento, curva de aprendizado simples, aumento de produtividade, fácil manutenção do código, entre outras vantagens podem ser observadas também em aplicações que resolvem empregar o uso de TypeScript em sua stack.

Deixem seu feedback, comentem e compartilhem para termos ideia do quão valoroso é nosso conteúdo para vocês! Breve estarei criando novos conteúdos, novas dinâmicas, etc, sobre essa ferramenta que sou apaixonado que é o TypeScript.

Acesse nosso [Discord - DevGO](https://discord.gg/YsxDMAua7Q), lá vocês terão acesso a novas publicações de nossa comunidade, sempre buscamos os melhores conteúdos para deixá-los informados e melhor amparado tecnicamente! Não perca, se junte a essa comunidade incrível.

